getopt long函式學習筆記

2021-08-23 13:49:29 字數 1069 閱讀 8942

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 用來分析命令列引數。...