Какой объем данных можно передать в качестве аргументов командной строки?

StackOverflow https://stackoverflow.com/questions/1480110

  •  18-09-2019
  •  | 
  •  

Вопрос

Сколько байтов можно отправить в качестве аргумента командной строки при запуске процесса в Linux?

Это было полезно?

Решение

gahoa предлагает хорошую статью на http://www.in-ulm.de/~mascheck/various/argmax/, но если эта страница когда-нибудь исчезнет, ​​вот суть дела:чтобы найти максимальную длину аргументов командной строки, попробуйте одно из следующих действий

* command: getconf ARG_MAX
* system call: sysconf(_SC_ARG_MAX)
* system header: ARG_MAX in e.g. <[sys/]limits.h>

Другие советы

Хорошая статья описывает проблему:

http://www.in-ulm.de/~mascheck/various/argmax/

Этот фрагмент расскажет вам.

#include <stdio.h>
#include <unistd.h>

int main(int argc, char** argv)
{
    const long value = sysconf(_SC_ARG_MAX);
    printf("ARG_MAX: %ld\n", value);
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top