要获取并设置C中线程属性的堆栈大小,我们使用以下线程属性:
用于获取线程堆栈大小。stacksize属性给出分配给线程堆栈的最小堆栈大小。如果运行成功,则给出0,否则给出任何值。
它有两个参数-
pthread_attr_getstacksize(pthread_attr_t * attr,size_t * stacksize)
第一个是pthread属性。
第二个给出线程属性的大小。
用于设置新线程的堆栈大小。stacksize属性给出分配给线程堆栈的最小堆栈大小。如果运行成功,则给出0,否则给出任何值。
它有两个参数-
pthread_attr_setstacksize(pthread_attr_t * attr,size_t * stacksize)
第一个是pthread属性。
第二个用于给出新堆栈的大小(以字节为单位)。
Begin Declare stack size and declare pthread attribute a. Gets the current stacksize by pthread_attr_getstacksize() and print it. Set the new stack size by pthread_attr_setstacksize() and get the stack size pthread_attr_getstacksize() and print it. End
#include <stdio.h> #include <stdlib.h> #include <pthread.h> int main() { size_t stacksize; pthread_attr_t a; pthread_attr_getstacksize(&a, &stacksize); printf("Current stack size = %d\n", stacksize); pthread_attr_setstacksize(&a, 67626); pthread_attr_getstacksize(&a, &stacksize); printf("New stack size= %d\n", stacksize); return 0; }
输出结果
Current stack size = 50 New stack size= 67626