Chinaunix首页 | 论坛 | 博客
  • 博客访问: 95083
  • 博文数量: 59
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2018-11-18 23:26
文章分类
文章存档

2021年(1)

2013年(1)

2012年(57)

分类:

2012-10-20 14:10:06

原文地址:设置并获取线程的栈大小 作者:jian_g_

#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 系统调用在程序中设置栈大小。
阅读(866) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~