linux分析命令行參數(shù)getopt
getopt
getopt(分析命令行參數(shù))
相關(guān)函數(shù)
表頭文件
#include<unistd.h>
定義函數(shù):
int getopt(int argc,char * const argv[ ],const char * optstring);
extern char *optarg;
extern int optind, opterr, optopt;
函數(shù)說明 getopt()用來分析命令行參數(shù)。參數(shù)argc和argv是由main()傳遞的參數(shù)個數(shù)和內(nèi)容。
參數(shù)optstring為選項(xiàng)字符串,告知 getopt()可以處理哪個選項(xiàng)以及哪個選項(xiàng)需要參數(shù),如果選項(xiàng)字符串里的字母后接著冒號“:”,則表示還有相關(guān)的參數(shù),
全域變量optarg 即會指向此額外參數(shù)。如果在處理期間遇到了不符合optstring指定的其他選項(xiàng)getopt()將顯示一個錯誤消息,并將全域變量optarg設(shè)為“?”字符,如果不希望getopt()打印出錯信息,則只要將全域變量opterr設(shè)為0即可。
getopt() 所設(shè)置的全局變量包括:
optarg——指向當(dāng)前選項(xiàng)參數(shù)(如果有)的指針。
optind——再次調(diào)用 getopt() 時的下一個 argv 指針的索引。
optopt——最后一個已知選項(xiàng)。
補(bǔ)充說明下optstring中的指定的內(nèi)容的意義(例如getopt(argc, argv, "ab:c:de::");
1.單個字符,表示選項(xiàng),(如上例中的abcde各為一個選項(xiàng))
2.單個字符后接一個冒號:表示該選項(xiàng)后必須跟一個參數(shù)。參數(shù)緊跟在選項(xiàng)后或者以空格隔開。該參數(shù)的指針賦給optarg。(如上例中的b:c:)
3 單個字符后跟兩個冒號,表示該選項(xiàng)后必須跟一個參數(shù)。參數(shù)必須緊跟在選項(xiàng)后不能以空格隔開。該參數(shù)的指針賦給optarg。(如上例中的e::)
getopt(分析命令行參數(shù))
相關(guān)函數(shù)
表頭文件
#include<unistd.h>
定義函數(shù):
int getopt(int argc,char * const argv[ ],const char * optstring);
extern char *optarg;
extern int optind, opterr, optopt;
函數(shù)說明 getopt()用來分析命令行參數(shù)。參數(shù)argc和argv是由main()傳遞的參數(shù)個數(shù)和內(nèi)容。
參數(shù)optstring為選項(xiàng)字符串,告知 getopt()可以處理哪個選項(xiàng)以及哪個選項(xiàng)需要參數(shù),如果選項(xiàng)字符串里的字母后接著冒號“:”,則表示還有相關(guān)的參數(shù),
全域變量optarg 即會指向此額外參數(shù)。如果在處理期間遇到了不符合optstring指定的其他選項(xiàng)getopt()將顯示一個錯誤消息,并將全域變量optarg設(shè)為“?”字符,如果不希望getopt()打印出錯信息,則只要將全域變量opterr設(shè)為0即可。
getopt() 所設(shè)置的全局變量包括:
optarg——指向當(dāng)前選項(xiàng)參數(shù)(如果有)的指針。
optind——再次調(diào)用 getopt() 時的下一個 argv 指針的索引。
optopt——最后一個已知選項(xiàng)。
補(bǔ)充說明下optstring中的指定的內(nèi)容的意義(例如getopt(argc, argv, "ab:c:de::");
1.單個字符,表示選項(xiàng),(如上例中的abcde各為一個選項(xiàng))
2.單個字符后接一個冒號:表示該選項(xiàng)后必須跟一個參數(shù)。參數(shù)緊跟在選項(xiàng)后或者以空格隔開。該參數(shù)的指針賦給optarg。(如上例中的b:c:)
3 單個字符后跟兩個冒號,表示該選項(xiàng)后必須跟一個參數(shù)。參數(shù)必須緊跟在選項(xiàng)后不能以空格隔開。該參數(shù)的指針賦給optarg。(如上例中的e::)
posted on 2013-04-16 15:40 天下 閱讀(503) 評論(0) 編輯 收藏 引用 所屬分類: Win32 、Linux編程