2011-01-12 8 views
5

mit C/C++, können verwendet werden getopt_long() Befehlszeilenargumente zu analysieren. Ist es möglich, der Funktion mitzuteilen, dass einige der Optionen obligatorisch sind? Zum Beispiel, wie kann ich sagen getopt_long, dass die Analyse sollte Fehler geben, wenn startServer aufgerufen wird, ohne den Port unten zu erwähnen?Mandatory Optionen mit getopt_long() in C

./startServer -port 80

Hinweis: Ich spreche nicht von Option Argumente als zwingend, sondern die Optionen selbst.

+0

Ich bezweifle, dass es einen Weg gibt. Verfolgen Sie, ob diese Option gesehen wurde? – lijie

Antwort

5

getopt_long() ist nicht Teil der C-Sprache. Es ist eine GNU-Erfindung, die in einigen C-Implementierungen verfügbar ist, aber bei weitem nicht alle.

Die Version von getopt_long() in glibc (in den meisten Linux-Distributionen verwendet) können Sie nicht angeben, dass eine Option obligatorisch ist. Sie müssen sie explizit überprüfen, nachdem Sie die Befehlszeile analysiert haben.