读书人

linux下,进程的堆栈大小到底是OS决定的

发布时间: 2012-03-13 11:21:11 作者: rapoo

linux下,进程的堆栈大小到底是OS决定的还是编译器决定的?
如果是OS决定的,所有进程堆栈大小应该都是一样的吧?

但是clone函数
int clone(int (*fn)(void *), void *child_stack, int flags, void *arg)
又可以在运行时决定堆栈的大小,这似乎不是系统规定好的。

如果是编译器在链接的时候决定的,那么就应该不能动态修改啊。如何解释clone函数可以设定堆栈大小呢?

谢谢!

[解决办法]
Windows下,对于VC编译器,据说是链接的时候指定的。
[解决办法]
ulimit -s xx




[解决办法]
系统肯定有默认的堆栈大小,但是用户在创建进程时,也是可修改的。

读书人网 >UNIXLINUX

热点推荐