libmagic (file) database "use" and "clear" type

Максимальная длина аргументов функции exec () (используемых оболочкой для запуска процесса) определяется значением ARG_MAX в пределах . .h заголовок. Это значение также доступно через команду getconf . В моей системе:

$ getconf ARG_MAX
262144

Это означает, что полная командная строка (после обработки всех замен переменных и т. Д.), , включая любые переменные среды и их значения , не должна превышать 256 КБ, чтобы оболочка могла работать гарантированно приму это.

POSIX гарантирует, что ARG_MAX не меньше 4096.

Для обсуждения ARG_MAX , относящегося к Linux, см. ответ Стефана Чазеласа на связанный вопрос ].

Подробное обсуждение этой проблемы см. На https://www.in-ulm.de/~mascheck/various/argmax/ (внешняя ссылка).


С помощью файла шаблонов grep -f вы можете обойти максимальную длину командной строки, поместив шаблоны, для которых вы хотите grep , в файл шаблоны. . Тогда ограничение на количество шаблонов будет вашей доступной оперативной памятью, а не системным ограничением на длину командной строки.

1
13.12.2015, 00:48
0 ответов

Теги

Похожие вопросы