** argv参数的最大长度

时间:2011-08-17 10:21:29

标签: c posix

在类似POSIX的系统上,命令行参数是否有最大长度?

为了澄清,我正在寻找每个命令行参数的最大长度,而不是最大参数数。

1 个答案:

答案 0 :(得分:7)

POSIX没有为每个参数定义最大长度。

MAX_ARG_STRLEN是特定于Linux的常量which was introduced in the 2.6.25 kernel

从2.6.25内核开始,MAX_ARG_STRLEN被定义为131072 bytes = 32 pages of memory

(我假设页面大小为4k,除非启用CONFIG_HUGETLB_PAGE,否则就是这种情况。我不确定CONFIG_HUGETLB_PAGE如何影响MAX_ARG_STRLEN。)

另请参阅:http://manpages.ubuntu.com/manpages/lucid/man2/execve.2.html