据我所知,环境变量和命令行参数存储在堆栈顶部。我已经通过打印argv和env的地址来验证。
我也理解,进程的堆栈大小有限制,我们可以使用ulimit -s
或使用getrlimit
函数打印RLIMIT_STACK
作为第一个参数。
但有些文本显示环境变量和命令行参数,就好像它们存储在虚拟内存布局的某些单独部分中一样。
我的问题是:堆栈限制是否适用于实际程序堆栈,不包括环境变量和命令行参数或包含?
答案 0 :(得分:3)
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.