Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471746
  • 博文数量: 135
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 1441
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-05 20:39
文章分类
文章存档

2012年(2)

2011年(130)

2009年(2)

2008年(1)

我的朋友

分类: LINUX

2011-09-27 10:23:18

#include
#include
#include
#include
#include
pthread_attr_t Attr;
void * get_stack(void *arg)
{
size_t stack_size;
// void *stack_addr;
pthread_attr_getstacksize(&Attr, &stack_size);//获取栈大小
printf("stack size = %d\n", stack_size);
}
int main(int argc, char **argv)
{
pthread_t id;
pthread_attr_init(&Attr);
pthread_attr_setdetachstate(&Attr, PTHREAD_CREATE_JOINABLE);
pthread_attr_setstacksize(&Attr,4096*1024);//设置线程的栈大小
if (pthread_create(&id, &Attr, (void *)get_stack, NULL) != 0)
{
      perror("pthread_create error!\n");
       return -1;
}
pthread_join(id, NULL);
pthread_attr_destroy(&Attr);
return 0;
}
通过系统命令ulimit -a 看stack size, -s 设置stack size. 或者通过getrlimit / setrlimit 系统调用在程序中设置栈大小。
阅读(2951) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~