多线程编程指南

pthread_attr_setstack(3C) 语法

int	pthread_attr_setstack(pthread_attr_t *tattr,void *stackaddr,

                           size_t stacksize);
#include <pthread.h>



pthread_attr_t tattr;

void *base;

size_t size;

int ret;



base = (void *) malloc(PTHREAD_STACK_MIN + 0x4000);



/* setting a new address and size */

ret = pthread_attr_setstack(&tattr, base,PTHREAD_STACK_MIN + 0x4000);

stackaddr 属性定义线程栈的基准(低位地址)。stacksize 属性指定栈的大小。如果将 stackaddr 设置为非空值,而不是缺省的 NULL,则系统将在该地址初始化栈,假设大小为 stacksize

base 包含新线程使用的栈的地址。如果 baseNULL,则 pthread_create(3C) 将为大小至少为 stacksize 字节的新线程分配栈。