getopt:int getopt(int argc,char * const argv[ ],const char * optstring);
表頭文件 #include<unistd.h>定義函數 int getopt(int argc,char * const argv[ ],const char * optstring);extern char *optarg;extern int optind, opterr, optopt;
optarg——指向當前選項參數(如果有)的指針。
optind——再次調用 getopt() 時的下一個 argv 指針的索引。
optopt——最後一個未知選項。
函數說明 getopt()用來分析命令行參數。參數argc和argv是由main()傳遞的參數個數和內容。參數 optstring爲選項字符串, 告知 getopt()可以處理哪個選項以及哪個選項需要參數:
如果選項字符串裏的字母后接着冒號“ :”,則表示還有相關的參數,全域變量optarg 即會指向此額外參數。如果在處理期間遇到了不符合optstring指定的其他選項getopt()將顯示一個錯誤消息,並將全域變量optarg設爲“?”字符,如果不希望getopt()打印出錯信息,則只要將全域變量opterr設爲0即可。optstring中的指定的內容的意義(例如getopt(argc, argv, "ab:c:de::");
1、單個字符,表示選項,(如上例中的abcde各爲一個選項)2、單個字符後接一個冒號:表示該選項後必須跟一個參數。參數緊跟在選項後或者以空格隔開。該參數的指針賦給optarg。(如上例中的b:c:)3、 單個字符後跟兩個冒號,表示該選項後可以跟一個參數,也可以不跟。如果跟一個參數,參數必須緊跟在選項後不能以空格隔開。該參數的指針賦給optarg。(如上例中的e::,如果沒有跟參數,則optarg = NULL)