Open In App

Get the stack size and set the stack size of thread attribute in C

Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite : Multithreading

Syntax :




// 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);


.
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)




#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-> 320000034
 

For compile use gcc program_name.c -lpthread



Last Updated : 22 Sep, 2017
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads