2011-01-12 10 views
5

Con C/C++, è possibile utilizzare getopt_long() per analizzare gli argomenti della riga di comando. È possibile dire alla funzione che alcune opzioni sono obbligatorie? Ad esempio, come posso dire a getopt_long che l'analisi dovrebbe dare un errore se viene chiamato startServer senza menzionare la porta sottostante?Opzioni obbligatorie con getopt_long() in C

./startServer -port 80

Nota: non sto parlando di argomenti opzionali come obbligatorio, ma piuttosto le opzioni stesse.

+0

dubito che ci sia un modo. tenere traccia di se questa opzione è stata vista? – lijie

risposta

5

getopt_long() non fa parte del linguaggio C. È un'invenzione GNU che è disponibile in alcune implementazioni C, ma lontana da tutto.

La versione di getopt_long() in glibc (utilizzata nella maggior parte delle distribuzioni Linux) non consente di specificare che un'opzione è obbligatoria. Dovrai controllarli esplicitamente dopo aver completato l'analisi della riga di comando.