多线程编程指南

pthread_attr_setstack(3C) 返回值

pthread_attr_setstack() 成功完成后将返回零。其他任何返回值都表示出现了错误。如果出现以下情况,该函数将失败并返回对应的值。


EINVAL

描述:

basetattr 的值不正确。stacksize 的值小于 PTHREAD_STACK_MIN

以下示例说明如何使用自定义栈地址和大小来创建线程。

#include <pthread.h>



pthread_attr_t tattr;

pthread_t tid;

int ret;

void *stackbase;

size_t size;



/* initialized with default attributes */

ret = pthread_attr_init(&tattr);



/* setting the base address and size of the stack */

ret = pthread_attr_setstack(&tattr, stackbase,size);



/* address and size specified */

ret = pthread_create(&tid, &tattr, func, arg);