1.標頭檔案
#include #include #include #include
2.函式原型
int getopt_long(int argc, char * const argv, const char *optstring, const struct option *longopts, int *longindex);
longindex引數如果沒有設定為null,那麼它就指向乙個變數,這個變數會被賦值為尋找到的長選項在longopts中的索引值
3.全域性符號
(1)struct option ;
一般每個長選項都對應乙個短選項,兩者是等價的,option結構就是用來定義長選項對應哪個短選項,name表示長選項的名稱,val表示對應的短選項,比如,說明--no-proxy對應與-n。
has_arg可以取值如下:
no_argument 0 選項沒有引數
requierd_argument 1 選項需要引數
optional_argument 2
選項引數可選
比如我們可以定義如下選項:
static const struct option longopts = , , , , , , , };
(2)
extern char *optarg extern int optind, optopt, opterr
axel -q --no-proxy --max-speed=150
初始時,optind的值為1,指向第1個引數,每呼叫一次getopt_long,optind就向後移乙個單位,指向第二個引數,這樣optind總是指向下乙個要處理的引數,optarg表示引數的值,比如但處理max-speed時,optarg的值為150
4.函式返回值
(1)若沒有命令列引數,返回-1
(2)若碰到匹配的短選項, 返回對應的字元,比如碰到-n, 返回'n',若碰到匹配的長選項,返回在option陣列裡面定義的val,
比如碰到--no-proxy, 返回'n'。
(3)若碰到無法識別的短選項,返回-1, 若碰到無法識別的長選項,返回'?'
getopt long 函式詳解
檔案 include 函式原型 int getopt long int argc,char const argv,const char optstring,const struct option longopts,int longindex 函式說明 getopt被用來解析命令列選項引數。getop...
getopt long 函式的作用
linux系統下,需要大量的命令列選項,如果自己手動解析他們的話實在是有違軟體復用的思想,不過還好,gnu c library留給我們乙個解析命令列的介面 x open規範 好好使用它可以使你的程式改觀不少。使用getopt long 需要引入標頭檔案 include 現在我們使用乙個例子來說明它的...
getopt函式和getopt long函式
預備知識 1.getopt getopt在unix下的命令列程式特別好用,特別是在你有許多引數要加入時。表頭檔案 i nclude 函式宣告 int getopt int argc,char const argv,const char optstring 函式說明 getopt 用來分析命令列引數。...