【问题标题】:RLIMIT_STACK inclusive of environment variables and command line arguments or exclusiveRLIMIT_STACK 包括环境变量和命令行参数或独占
【发布时间】:2015-02-16 22:05:39
【问题描述】:

我了解,环境变量和命令行参数存储在堆栈的顶部。我也通过打印 argv 和 env 的地址验证了这一点。

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

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

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

【问题讨论】:

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


    【解决方案1】:

    这在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.
    

    【讨论】:

    • 尝试在Stack Clash 修正后设置rlimit_stack 可能会导致失败或相关问题。另请参阅红帽 Issue 1463241
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2018-11-18
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2012-10-19
    相关资源
    最近更新 更多