Prerequisite : Multithreading
Syntax :
C
.
pthread_attr_getstacksize() :
It is use for get threads stack size. The stacksize attribute gives the minimum stack size allocated to threads stack. When successfully run then it gives 0 otherwise gives any value.
First argument - It takes pthread attribute.
Second argument - It takes a variable and give the size of the thread attribute.
pthread_attr_setstacksize() :
It is use for set new threads stack size. The stacksize attribute gives the minimum stack size allocated to threads stack. When successfully run then it gives 0 otherwise if error gives any value.
First argument - It takes pthread attribute.
Second argument - It takes the size of new stack (In bytes)
C
// to get size of stack
int pthread_attr_getstacksize(const pthread_attr_t* restrict attr,
size_t* restrict stacksize);
// to set size of stack
int pthread_attr_setstacksize(pthread_attr_t* attr, size_t stacksize);
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
int main()
{
// for takes the size of threads stack
size_t stksize;
// attribute declaration
pthread_attr_t atr;
// it gets the threads stack size and give
// value in stksize variable
pthread_attr_getstacksize(&atr, &stksize);
// print the current threads stack size
printf("Current stack size - > %d\n", stksize);
// then set the new threads stack size
pthread_attr_setstacksize(&atr, 320000034);
pthread_attr_getstacksize(&atr, &stksize);
// print the new stack size
printf("New stack size-> %d\n", stksize);
return 0;
}
Output :
Current stack size - > 4196464 New stack size-> 320000034For compile use gcc program_name.c -lpthread