今天在CSDN里回了一个贴子,我按照理论上的栈大小可以有2G多的空间时,被另一个朋友指出我的错误,实际中栈只有2M,他指的是线程。可是在LINUX下进程和线程是没什么差别的。我就突然想起应该用一种什么方法来验证一下栈的大小,由GOOGLE帮忙,找到了后面的reference。
写一个hello, world程序
#include <stdio.h>
int main(int argc, char* argv[])
{
int buf[2*1024*1024];
printf("hello, world");
return 0;
}
buf的大小是2*1024*1024*4=8M。可以改变buf的大小,来验证栈的大小。我在的系统用的内核版本是2.4.20。在以上程序运行的时候出现了段错误。
References: http://coolq.blogdriver.com/coolq/26282.html