RLIMIT_STACK包括环境变量和命令行参数或独占

时间:2014-12-18 07:20:50

标签: c linux stack environment-variables virtual-memory

据我所知,环境变量和命令行参数存储在堆栈顶部。我已经通过打印argv和env的地址来验证。

我也理解,进程的堆栈大小有限制,我们可以使用ulimit -s或使用getrlimit函数打印RLIMIT_STACK作为第一个参数。

但有些文本显示环境变量和命令行参数,就好像它们存储在虚拟内存布局的某些单独部分中一样。

我的问题是:堆栈限制是否适用于实际程序堆栈,不包括环境变量和命令行参数或包含?

1 个答案:

答案 0 :(得分:3)

这在documentation

中得到了解答
RLIMIT_STACK
...
    Since Linux 2.6.23, this limit also determines the amount of space used for the
    process's  command-line arguments and environment variables.