Quelle est la longueur maximale des arguments en ligne de commande dans gnome-terminal?
... et existe-t-il une variable d'environnement système qui rapporte cette valeur?
Quelle est la longueur maximale des arguments en ligne de commande dans gnome-terminal?
... et existe-t-il une variable d'environnement système qui rapporte cette valeur?
Réponses:
xargs
sait. Sur mon système,
$ 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 seulement pour signaler la limite, mais aussi (principalement) pour la contourner - voir la page de manuel ou une autre documentation.
xargs --show-limits --no-run-if-empty < /dev/null 2>&1 |sed -n "/could actually use/s/.*: \\([0-9]\+\\)/\1/p"
La réponse provient de la valeur sysconfARG_MAX
. Pour l'examiner sur votre système:
getconf ARG_MAX
Pour moi, cela rapporte 2097152
. Pour plus de détails, consultez la page de manuel:
man sysconf
Pour insérer cela dans un programme, par exemple:
#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));
Je ne connais pas vraiment gnome-terminal, mais le shell n'a pas de limite 'fixe', mais la limite de pile.
Cependant, il existe une limite par code fixe par argument de 128 Ko. Cela ne devrait pas poser de problème si vous n'utilisez pas de "très très très longs arguments ...".
Vous pouvez en savoir plus à ce sujet ici: