gnome-terminal 中命令行参数的最大长度是多少?
... 是否有一个系统环境变量可以报告这个值?
答案1
xargs
知道。在我的系统上,
$ xargs --show-limits
Your environment variables take up 2572 bytes
POSIX upper limit on argument length (this system): 2092532
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2089960
Size of command buffer we are actually using: 131072
答案2
答案来自于系统配置值ARG_MAX
。要在系统上检查它,请执行以下操作:
getconf ARG_MAX
对我来说,这报告2097152
。有关更多详细信息,请查看联机帮助页:
man sysconf
要在程序中获取它,例如:
#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));
答案3
我不太了解 gnome-terminal,但是 shell 没有“固定”的限制,而是堆栈的限制。
但是每个参数的硬编码限制为 128KB,如果您不使用“非常非常长的参数……”,这应该不是问题。
您可以在这里阅读更多相关信息: