Chr*_*odd 11 linux environment-variables
Linux 似乎对任何单个环境变量的长度都有 128KiB (131072) 的默认限制——任何尝试设置一个比这更长的 envvar 然后运行任何程序都将导致“参数列表太长”错误。
这似乎应该是一个配置参数,但我一直无法找到任何方法来提高它。有什么办法可以增加吗?
对于像“automake”这样的工具来说,这是有问题的,这些工具试图将环境变量中的一长串文件或测试放在一起,作为其构建和测试过程的一部分。
Ale*_*exP 10
MAX_ARG_STRLEN是定义为PAGESIZE*32中的常数include/uapi/linux/binfmts.h。不重新编译内核就不能改变它的值。
/*
* These are the maximum length and maximum number of strings passed to the
* execve() system call. MAX_ARG_STRLEN is essentially random but serves to
* prevent the kernel from being unduly impacted by misaddressed pointers.
* MAX_ARG_STRINGS is chosen to fit in a signed 32-bit integer.
*/
#define MAX_ARG_STRLEN (PAGE_SIZE * 32)
#define MAX_ARG_STRINGS 0x7FFFFFFF
Run Code Online (Sandbox Code Playgroud)