Linux/Unix下程序的堆栈大小是怎么定的?

hupo1982 hupo1982 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
windows下在VC中进行程序开发时可以在工程设置中更改堆栈的大小,那么在Linux/Unix下的程序开发是怎么决定一个程序所用堆栈的大小呢?
我们的一个软件因为用了迭代,所以对堆栈的要求比较高,在Windows下我们改了dsp文件的设置,没有问题,但是在HP的工作站上(UNIX)就有问题,一做涉及到迭代的功能程序就会崩溃,提示栈空间不够。我用ulimit -a 查看了一下,返回:
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 2015464
stack(kbytes) 81612
memory(kbytes) unlimited
coredump(blocks) 4194303
nofiles(descriptors) 200
我用ulimit -s想把stack size改一下,可是只要稍微改大一点(比如81613)就/usr/bin/ulimit[7]: ulimit: exceeds allowable limit,我工作站的内存是1149M,为什么我的堆栈大小改不上去,是有其他的限制需要改大吗?
谢谢指点!
...全文
评论 11
收藏 已收藏
分享
返回顶部
hupo1982
Linux/Unix社区 23,224 成员 74,535 内容