pthread_attr_getstack得到的结果
我想通过pthread_attr_getstack来得到线程的默认属性值但是得到的结果比较奇怪
有高手帮忙可以分析一下吗?
怎么stackaddr是0,stacksize也是0?
难道是pthread_create的时候临时申请的吗?
我写了一个pthread_create 测试了一下还是这个结果哦
pthread_attr_t attr;
void *stackaddr;
size_t stacksize;
pthread_attr_init(&attr);
pthread_attr_getstack(&attr,&stackaddr,&stacksize);
printf("statck address = %p stack size = %x\n",stackaddr,stacksize);
输出结果:
statck address = (nil) stack size = 0
默认的值就是0
如果你pthread_attr_setstacksize()的话
就可以得到你设置的值了 似乎是这样的~ 可以通过pthread_attr_setstack()进行设置 stacksize =N*PTHREAD_STACK_MIN 以及 stackaddr=(void*)malloc((N+1)*PTHREAD_STACK_MIN) PTHREAD_STACK_MIN宏需包含<limits.h>头文件。 eclipse_2 发表于 2009-04-05 13:04 static/image/common/back.gif
默认的值就是0
如果你pthread_attr_setstacksize()的话
就可以得到你设置的值了
今天遇到同样的疑问?
如果线程的默认 stacksize 和 stackaddr 都是 0 的话,那么在不自己设置的情况下(全都采用默认),线程中的变量在哪里得到内存呢?
页:
[1]