2011-08-17 16 views
12

En sistemas de tipo POSIX, ¿hay una longitud máxima para los argumentos de línea de comando?Longitud máxima de ** parámetros de argv

Para aclarar, estoy buscando la longitud máxima de cada argumento de línea de comando, no el número máximo de argumentos.

+0

_POSIX_ARG_MAX ?? –

+0

Sospecho que es altamente específico de la plataforma. en su lugar, puede pasar datos a su programa a través de stdin si es una gran cantidad de datos. –

+0

No, _POXIX_ARG_MAX es la longitud máxima para todos los argumentos juntos. –

Respuesta

7

POSIX no define una longitud máxima para cada argumento.

es una constante específica de Linux which was introduced in the 2.6.25 kernel.

A partir del núcleo 2.6.25, MAX_ARG_STRLEN se define como 131072 bytes = 32 pages of memory.

(estoy asumiendo un tamaño de página de 4k, que es el caso, a menos CONFIG_HUGETLB_PAGE está habilitado No estoy seguro de cómo afecta CONFIG_HUGETLB_PAGEMAX_ARG_STRLEN..)

Ver también: http://manpages.ubuntu.com/manpages/lucid/man2/execve.2.html

+0

GJ investigando que :-) – cnicutar

+0

cnicutar, lo siento, mi pregunta original no estaba clara y gracias por responder. Tu respuesta me ayudó a investigar la mía. –