Ich habe ein Programm, das mehrere Befehlszeilenargumente verwendet, also verwende ich getopt. Eines meiner Argumente nimmt eine Zeichenfolge als Parameter auf. Gibt es trotzdem einen String durch die getopt-Funktion oder müsste ich ihn über das Array argv [] erhalten? Kann auch lesen args wie -file
? Alle Argumente, die ich bisher gesehen habe, haben nur ein Zeichen wie -a
BEARBEITEN
Aus den folgenden Antworten habe ich ein Programm geschrieben, das getopt_long () verwendet, aber die switch-Anweisung erkennt nur das Argument, wenn ich das Argument character und nicht das Argument long verwende. Ich bin mir nicht sicher, warum das passiert. Beim Übergeben der Argumente -mf -file sample
sehe ich die print-Anweisungen nicht.
BEARBEITEN
Ich habe versucht, die Befehlsargumente als --file
einzugeben und dann hat es funktioniert. Ist das nicht möglich mit -file
?
Lesen Sie man getopt
Ссылка
optstring ist eine Zeichenfolge, die die zulässigen Optionszeichen enthält. Ob Auf ein solches Zeichen folgt ein Doppelpunkt, die Option erfordert ein Argument, so platziert getopt () einen Zeiger auf den folgenden Text in der gleiches argv-element, oder der Text des folgenden argv-Elements, in optarg. Zwei Doppelpunkte bedeuten, dass eine Option ein optionales Argument verwendet. Wenn da ist Text im aktuellen argv-Element (d. h. im selben Wort wie die Option) B. "-oarg"), dann wird es in optarg zurückgegeben, Andernfalls wird optarg auf Null gesetzt.
Ein Beispielcode:
%Vor% Hier in optstring
ist "i: o:" der Doppelpunkt ':' Zeichen nach jedem Zeichen in der Zeichenfolge sagt, dass diese Optionen ein Argument benötigen. Sie können das Argument als String im optarg
global var finden. Siehe Handbuch für Details und weitere Beispiele.
Wenn mehr als eine Zeichenoption umgeschaltet wird, sehen Sie die langen Optionen getopt_long
. Überprüfen Sie das Handbuch auf Beispiele.
BEARBEITEN als Antwort auf die einzelnen '-' langen Optionen:
Von den Manpages
getopt_long_only () ist wie getopt_long (), aber '-' sowie "-" können eine lange Option anzeigen. Wenn eine Option mit '-' beginnt (nicht "-") passt nicht zu einer langen Option, aber passt zu einer kurzen Option, Es wird stattdessen als kurze Option analysiert.
Überprüfen Sie das Handbuch und versuchen Sie es.
Um anzugeben, dass ein Flag ein Argument erfordert, fügen Sie direkt nach dem Flag in der Variablen short_opt ein ':' hinzu. Verwenden Sie getopt_long ().
, um lange Argumente zu verwendenHier ist ein kurzes Beispielprogramm:
%Vor%