Какова максимальная длина аргументов командной строки в gnome-terminal?
... а есть ли системная переменная среды, которая сообщает об этом значении?
Какова максимальная длина аргументов командной строки в gnome-terminal?
... а есть ли системная переменная среды, которая сообщает об этом значении?
Ответы:
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
xargs
не только для сообщения о пределе, но также (главным образом) для его обхода - см. Справочную страницу или другую документацию.
xargs --show-limits --no-run-if-empty < /dev/null 2>&1 |sed -n "/could actually use/s/.*: \\([0-9]\+\\)/\1/p"
Ответ исходит из значения sysconfARG_MAX
. Чтобы проверить это в вашей системе:
getconf ARG_MAX
Для меня это отчеты 2097152
. Для более подробной информации проверьте man-страницу:
man sysconf
Чтобы получить это внутри программы, например:
#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));
Я действительно не знаю о gnome-Terminal, но оболочка имеет не «фиксированный» предел, а предел стека.
Однако существует ограничение жесткого аргумента для каждого аргумента, равное 128 КБ, что не должно быть проблемой, если вы не используете «очень очень очень длинные аргументы ....».
Вы можете прочитать больше об этом здесь: