Tutorialspoint.dev

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

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 ", 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 ", stksize);
    return 0;
}

Output :

Current stack size - > 4196464
New stack size-> 320000034
 

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter