#include
int getopt_long(int argc, char * const argv,
const char *optstring,
const struct option *longopts, int *longindex);
getopt被用來解析命令列選項引數。
getopt_long支援長選項的命令列解析,使用man getopt_long,得到其宣告如下:
int getopt_long(int argc, char * const argv,const char *optstring, const struct option *longopts,int *longindex);
函式中的argc和argv通常直接從main()的兩個引數傳遞而來。optsting是選項引數組成的字串:
字串optstring可以下列元素:
1.單個字元,表示選項,
2.單個字元後接乙個冒號:表示該選項後必須跟乙個引數。引數緊跟在選項後或者以空格隔開。該引數的指標賦給optarg。
3 單個字元後跟兩個冒號,表示該選項後必須跟乙個引數。引數必須緊跟在選項後不能以空格隔開。該引數的指標賦給optarg。(這個特性是gnu的擴張)。
optstring是乙個字串,表示可以接受的引數。例如,"a:b:cd",表示可以接受的引數是a,b,c,d,其中,a和b引數後面跟有更多的引數值。(例如:-a host --b name)
引數longopts,其實是乙個結構的例項:
struct option
給個例子:
static const char short_options = "d:hmru";
static const struct option
long_options = ,,,
,,};int main(int argc, char **argv)
} 現在,如果命令列的引數是-d 123,那麼呼叫getopt_long()將返回字元'd',並且將字串123由optarg返回(注意注意!字串123由optarg帶回!optarg不需要定義,在getopt.h中已經有定義),那麼,如果命令列引數是-h,那麼呼叫getopt_long()將返回字元'h',而此時,optarg是null。最後,當getopt_long()將命令列所有引數全部解析完成後,返回-1。
getopt函式,命令列解析
getopt函式 函式功能 用來解析命令列引數,引數argc和ar 分別代表引數個數和內容,跟main 函式裡的命令列引數一樣 函式所在標頭檔案 include 函式原型定義 int getopt int argc,char const ar const char optstring 引數optst...
使用getopt解析命令列引數
python中可以使用getopt來解析命令列引數,其定義如下 getopt args,shortopts,longopts 其中,getopt返回opts,args元組,opts是根據shortopts,longopts引數解析出來的 key,value 列表,而其他剩餘引數就會放到args列表中...
Linux命令列解析函式getopt
include include int main int argc,char argv return 0 a.out a x a,no opt a.out a b x a,no opt b,opt x a.out ab x c xx a,no opt b,opt x c,opt xx應緊跟c後面 a...