程序默认栈空间大小

linux

linux 下线程的默认栈大小是8M

$ ulimit -s 
8192 # 8 * 1024KB

查看单个进程暂用堆栈的信息

$ strace -f -p {PID}

临时改变栈空间的大小

ulimit -s 102400 # 改为100MB
ulimit -s unlimited # 不限制 

永久修改栈空间大大小

echo -ne 
"
* soft stack 102400
" 
>>/etc/security/limits.conf

或者

$ sudo echo 'ulimit -s 102400' >> /etc/rc.local # 开机启动的脚本

windows

windows下程序的栈大小是链接时决定的

$ link /stack 102400 ....

程序默认单个线程的栈大小为1M

注:windows32用户态空间大小是2GB,如果fork出线程数过多,导致进程的栈大小超过2GB,程序会崩溃

你可能感兴趣的:(操作系统)