Getopt - Übergeben des Zeichenfolgenparameters für das Argument

8

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 ?

%Vor%     
AndroidDev93 26.07.2013, 09:12
quelle

2 Antworten

15

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.

    
phoxis 26.07.2013, 09:25
quelle
8

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 verwenden

Hier ist ein kurzes Beispielprogramm:

%Vor%     
David M. Syzdek 26.07.2013 09:40
quelle

Tags und Links