Linux

如何確定分配給命令行的空間量?

  • January 20, 2014

如何確定為命令行分配給他們的系統的空間量。還有什麼我需要關心的嗎?

xargs

我知道的一種方法是xargs用來找出這些資訊。

$ xargs --show-limits --no-run-if-empty < /dev/null 
Your environment variables take up 4791 bytes
POSIX upper limit on argument length (this system): 2090313
POSIX smallest allowable upper limit on argument length (all systems): 4096
Maximum length of command we could actually use: 2085522
Size of command buffer we are actually using: 131072

獲取配置

顯示的限制xargs源自此系統配置值。

$ getconf ARG_MAX
2097152

諸如此類的值通常在系統上“硬編碼”。有關man sysconf這些類型的值的更多資訊,請參閱。我相信這些類型的值可以在 C 應用程序中訪問,例如:

#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));

參考

引用自:https://unix.stackexchange.com/questions/110131