先决条件:多线程
句法 :
// 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():
它用于获取线程堆栈大小。 stacksize属性给出分配给线程堆栈的最小堆栈大小。当成功运行时,它给出0,否则给出任何值。
第一个参数–它带有pthread属性。
第二个参数–它接受一个变量,并给出线程属性的大小。
pthread_attr_setstacksize():
它用于设置新线程的堆栈大小。 stacksize属性给出分配给线程堆栈的最小堆栈大小。成功运行后,如果错误给出任何值,则给出0,否则返回0。
第一个参数–它带有pthread属性。
第二个参数–占用新堆栈的大小(以字节为单位)
#include
#include
#include
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;
}
输出 :
Current stack size - > 4196464
New stack size-> 320000034
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。