Was ist die maximale Länge von Kommandozeilenargumenten in gnome-terminal?
... und gibt es eine Systemumgebungsvariable, die diesen Wert meldet?
Was ist die maximale Länge von Kommandozeilenargumenten in gnome-terminal?
... und gibt es eine Systemumgebungsvariable, die diesen Wert meldet?
Antworten:
xargsweiß. Auf meinem System
$ 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
xargsdient nicht nur zum Melden des Grenzwerts, sondern auch (in erster Linie) zum Umgehen des Grenzwerts. Weitere Informationen finden Sie auf der Manpage oder in einer anderen Dokumentation.
xargs --show-limits --no-run-if-empty < /dev/null 2>&1 |sed -n "/could actually use/s/.*: \\([0-9]\+\\)/\1/p"
Die Antwort kommt vom sysconf- Wert ARG_MAX. So überprüfen Sie es auf Ihrem System:
getconf ARG_MAX
Für mich berichtet dies 2097152. Weitere Details finden Sie in der Manpage:
man sysconf
Um dies in ein Programm zu bekommen, zum Beispiel:
#include <unistd.h>
...
printf("%ld\n", sysconf(_SC_ARG_MAX));
Ich weiß nicht wirklich, was Gnome-Terminal ist, aber die Shell hat kein 'festes' Limit, sondern das Limit des Stacks.
Es gibt jedoch ein Hardcode-Limit von 128 KB pro Argument, das kein Problem darstellen sollte, wenn Sie keine "sehr sehr sehr langen Argumente ..." verwenden.
Hier können Sie mehr darüber lesen: