函式getopt的用法

2021-06-22 20:35:45 字數 1172 閱讀 2972

函式getopt()用來分析命令列引數,其函式原型和相關變數宣告如下:

int getopt(int argc, char * const argv, const char *optstring);

extern char *optarg; 

extern int optind,  // 初始化值為1,下一次呼叫getopt時,從optind儲存的位置重新開始檢查選項,也就是從下乙個'-'的選項開始。 

optarg和optind是兩個最重要的external變數。optarg是指向引數的指標(當然這只針對有引數的選項);optind是argv陣列的索引,眾所周知,argv[0]是函式名稱,所有引數從argv[1]開始,所以optind被初始化設定指為1。 每呼叫一次getopt()函式,返回乙個選項,如果該選項有引數,則optarg指向該引數。                  

在命令列選項引數再也檢查不到optstring中包含的選項時,返回-1。

函式getopt()有三個引數,argc和argv應該不需要多說,下面說一下字串optstring,它是作為選項的字串的列表。

函式getopt()認為optstring中,以'-』開頭的字元(注意!不是字串!!)就是命令列引數選項,有的引數選項後面可以跟引數值。optstring中的格式規範如下: 

1) 單個字元,表示選項, 

2) 單個字元後接乙個冒號」:」,表示該選項後必須跟乙個引數值。引數緊跟在選項後或者以空格隔開。該引數的指標賦給optarg。 

3) 單個字元後跟兩個冒號」:」,表示該選項後必須跟乙個引數。

標頭檔案位置由於系統而不同:

svid3, xpg3:

#include

int getopt(int argc, char * const argv, const  char  *optstring);

extern char *optarg;

extern int optind, opterr, optopt;

posix.2, xpg4, sus, susv2:

#include

int getopt(int argc, char * const argv, const  char  *optstring);

extern char *optarg;

extern int optind, opterr, optopt;

getopt 函式的用法

另外apue的p619有解釋!通常 linux 下的各種命令都有許多的命令列引數可以選擇,比如 gcc g lm foo.c o foo getopt 就是用來分析命令列引數的函式。在繼續討論getopt 之前,先要明確兩個概念 選項 option 和 選項引數 argument 在上面的例子中,g...

python函式getopt用法

python內建模組,用來處理命令列引數 格式 getopt args,shortopts,longopts 引數args一般是sys.ar 1 sys.ar 0 表示執行檔案本身 shortopts 短格式 longopts 長格式 命令列中輸入 python test.py i 127.0.0....

C語言中getopt 函式的用法

getopt函式用來解析命令列選項,宣告所在標頭檔案為 include 函式原型如下 int getopt int argc,char const ar const char optstring 第乙個引數argc是引數個數,和main函式的argc一樣 第二個引數ar 是字串指標,和main函式的...