Obtenga el tamaño de la pila y establezca el tamaño de la pila del atributo de hilo en C

Requisito previo: subprocesamiento múltiple

Sintaxis:

// 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() :
se usa para obtener el tamaño de la pila de subprocesos. El atributo stacksize proporciona el tamaño de pila mínimo asignado a la pila de subprocesos. Cuando se ejecuta con éxito, da 0; de lo contrario, da cualquier valor.

Primer argumento: toma el atributo pthread.
Segundo argumento: toma una variable y proporciona el tamaño del atributo del hilo.

pthread_attr_setstacksize() :
Se usa para establecer el tamaño de la pila de nuevos subprocesos. El atributo stacksize proporciona el tamaño de pila mínimo asignado a la pila de subprocesos. Cuando se ejecuta con éxito, da 0; de lo contrario, si el error da algún valor.

Primer argumento: toma el atributo pthread.
Segundo argumento: toma el tamaño de la nueva pila (en 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;
}

Producción :

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

Para compilar use gcc program_name.c -lpthread

Este artículo es una contribución de Devanshu Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *