2011-08-17 2 views
12

Su sistemi POSIX, esiste una lunghezza massima per gli argomenti della riga di comando?Lunghezza massima di ** parametri argv

Per chiarire, sto cercando la lunghezza massima di ogni argomento della riga di comando, non il numero massimo di argomenti.

+0

_POSIX_ARG_MAX ?? –

+0

Sospetto che sia molto specifico per la piattaforma. puoi invece passare i dati al tuo programma tramite stdin se contiene molti dati. –

+0

No, _POXIX_ARG_MAX è la lunghezza massima per tutti gli argomenti insieme. –

risposta

7

POSIX non definisce una lunghezza massima per ogni argomento.

MAX_ARG_STRLEN è una costante specifica per Linux which was introduced in the 2.6.25 kernel.

A partire dal kernel 2.6.25, MAX_ARG_STRLEN è definito come 131072 bytes = 32 pages of memory.

(sto assumendo un pagesize di 4k, che è il caso a meno che non sia attivata CONFIG_HUGETLB_PAGE io non sono sicuro di come CONFIG_HUGETLB_PAGE colpisce MAX_ARG_STRLEN..)

Vedi anche: http://manpages.ubuntu.com/manpages/lucid/man2/execve.2.html

+0

GJ alla ricerca di questo :-) – cnicutar

+0

cnicutar, scusa la mia domanda iniziale non era chiara e grazie per aver risposto. La tua risposta mi ha aiutato a ricercare la mia. –