Qual è la lunghezza massima degli argomenti della riga di comando in gnome-terminal?
... ed esiste una variabile di ambiente di sistema che riporta questo valore?
Qual è la lunghezza massima degli argomenti della riga di comando in gnome-terminal?
... ed esiste una variabile di ambiente di sistema che riporta questo valore?
Risposte:
xargs
conosce. Sul mio sistema,
$ 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
non è solo per segnalare il limite, ma è anche (principalmente) per aggirare il limite, vedere la pagina man o altra documentazione.
xargs --show-limits --no-run-if-empty < /dev/null 2>&1 |sed -n "/could actually use/s/.*: \\([0-9]\+\\)/\1/p"
La risposta viene dal valore di sysconfARG_MAX
. Per esaminarlo sul tuo sistema:
getconf ARG_MAX
Per me, questo riporta 2097152
. Per maggiori dettagli controlla la manpage:
man sysconf
Per ottenere questo all'interno di un programma, ad esempio:
#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));
Non so davvero di gnome-terminal, ma la shell non ha un limite 'fisso', ma il limite dello stack.
Tuttavia, esiste un limite di hardcode per argomento pari a 128 KB, che non dovrebbe costituire un problema se non si utilizzano "argomenti molto, molto lunghi ...".
Puoi leggere di più su questo qui: