形式:
int getopt(argc,argv,」引數列表」);
int getopt(int argc, char *const argv,const char *optstring);
呼叫一次,返回乙個選項。在命令列選項引數再也檢查不到optstring 中包含的選項時,返回-1,同時optind儲存第乙個不包括選項的命令引數。
何為 選項 ,引數**字串 optstring 可以下列元素
1.但個字元,表示選項
2.單個字元後接乙個冒號:表示該選項後必須跟乙個引數。 引數緊跟著在選項後面或者以空格隔開。該引數的指標賦給optarg.
3.單個字元後跟兩個冒號::,表示該選項後必跟乙個引數。引數必須緊跟在選項後,不能以空格隔開。該引數的指標賦給optarg.
4.預設情況下,getopt會重新排列命令引數的順序,所以到最後所有不包括選項的命令引數都排到最後。
getopt處理以「-」開頭的命令列引數,optstring=」ab:c::d::」,命令行為getopt.exe -a -b host -ckeke -d haha
如: getopt.exe -a ima -b host -ckeke -d haha
-a,-b host,-ckeke, ima -d haha
解析:
extern char *optarg ;//選項的引數指標
extern int optind;//下次呼叫getopt,從optind儲存的位置重新開始檢查選項
extern int opterr,//pterr=0,getopt不向stderr輸出錯誤資訊
extern int optopt;//當命令列選項字元不包括在optstring 中或者選項缺少必要的引數時,該選項儲存在optopt中,getopt返回「?「
例題
include
int main(int argc,char **argv)
int ch;
opterr = 0;
while((ch = getopt(argc,argv,」a:bcde」))!= -1)
switch(ch)
case 『a』: printf(「option a:』%s』\n」,optarg); break;
case 『b』: printf(「option b :b\n」); break;
default: printf(「other option :%c\n」,ch);
printf(「optopt +%c\n」,optopt);
執行 $./getopt –b
option b:b
執行 $./getopt –c
other option:c
執行 $./getopt –a
other option :?
執行 $./getopt –a12345
option a:』12345』
python 解析引數getopt
如果python想要去解析命令列的引數可以import getopt實現,該模組支援短選項和長選項兩種格式 短選項格式為 加上單個字母選項 長選項為 加上乙個單詞。opts,args getopt.getopt sys.ar 1 hi o s e input output symble oddeve...
使用getopt解析命令列引數
python中可以使用getopt來解析命令列引數,其定義如下 getopt args,shortopts,longopts 其中,getopt返回opts,args元組,opts是根據shortopts,longopts引數解析出來的 key,value 列表,而其他剩餘引數就會放到args列表中...
linux開發 命令列引數解析 getopt
linux大部分工具都是以命令列方式執行,因此都需要對命令列引數解析,它們大多都是用相同的解析方法!有點廢話 再次記錄下來!省得以後再查。大部分軟體都是用getopt系列函式解析命令列,glibc中就提供了該函式的實現,即使沒有依賴glibc,其他軟體包也會提供相應的實現。短格式的引數解析 int ...