堆空间和栈空间
跳到导航
跳到搜索
- 栈区(stack):又编译器自动分配释放,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构的栈。
- 堆区(heap):一般是由程序员分配释放,若程序员不释放的话,程序结束时可能由OS回收,值得注意的是他与数据结构的堆是两回事,分配方式倒是类似于数据结构的链表。
- 通过命令 ulimit -s 查看linux的默认栈空间大小,默认情况下 为10240 即10M
- 通过命令 ulimit -s 设置大小值 临时改变栈空间大小:ulimit -s 102400, 即修改为100M
- 可以在/etc/rc.local 内 加入 ulimit -s 102400 则可以开机就设置栈空间大小
- 在/etc/security/limits.conf 中也可以改变栈空间大小:
#<domain> <type> <item> <value> * soft stack 102400
重新登录,执行ulimit -s 即可看到改为102400 即100M
ulimit
- ubutun下用wget下载一个大文件出错,s段错误(核心已转储),晚上说解决方案就是ulimit -c和 ulimit -s 设置为unlimited,试验了一下有效果。ulimit -a可以查看所有的用户限制