免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5386 | 回复: 4
打印 上一主题 下一主题

pthread_attr_getstack得到的结果 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-04-05 13:04 |只看该作者 |倒序浏览
10可用积分
我想通过pthread_attr_getstack来得到线程的默认属性值
但是得到的结果比较奇怪
有高手帮忙可以分析一下吗?
怎么stackaddr是0,stacksize也是0?
难道是pthread_create的时候临时申请的吗?
我写了一个pthread_create 测试了一下还是这个结果哦

  1. pthread_attr_t attr;
  2. void *stackaddr;
  3. size_t stacksize;
  4. pthread_attr_init(&attr);
  5. pthread_attr_getstack(&attr,&stackaddr,&stacksize);
  6. printf("statck address = %p stack size = %x\n",stackaddr,stacksize);
复制代码


输出结果:

  1. statck address = (nil) stack size = 0
复制代码

最佳答案

查看完整内容

默认的值就是0如果你pthread_attr_setstacksize()的话就可以得到你设置的值了

论坛徽章:
0
2 [报告]
发表于 2009-04-05 13:04 |只看该作者
默认的值就是0
如果你pthread_attr_setstacksize()的话
就可以得到你设置的值了

论坛徽章:
0
3 [报告]
发表于 2009-04-05 21:09 |只看该作者
似乎是这样的~

论坛徽章:
0
4 [报告]
发表于 2012-09-24 19:37 |只看该作者
可以通过pthread_attr_setstack()进行设置    stacksize =N*PTHREAD_STACK_MIN    以及   stackaddr=(void*)malloc((N+1)*PTHREAD_STACK_MIN) PTHREAD_STACK_MIN宏需包含<limits.h>头文件。

论坛徽章:
1
巨蟹座
日期:2014-03-18 23:44:30
5 [报告]
发表于 2013-01-05 16:02 |只看该作者
eclipse_2 发表于 2009-04-05 13:04
默认的值就是0
如果你pthread_attr_setstacksize()的话
就可以得到你设置的值了


今天遇到同样的疑问?
如果线程的默认 stacksize 和 stackaddr 都是 0 的话,那么在不自己设置的情况下(全都采用默认),线程中的变量在哪里得到内存呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP