getopt函式的使用

2021-08-04 09:04:14 字數 988 閱讀 9738

#include

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

這是getopt函式的原型

函式用來分析命令列引數,有三個引數,argc表示引數個數,argv表示引數內容,optstring表示可選選項,重點就在於optstring的內容

argc和argv直接由主函式傳遞,optstring需要從命令列輸入

我們從**來簡單解釋

#include

2 #include

3 4

5 int main(int argc,char **argv)

6 29     }

30     return 0;

31 }

32 1。如果ch後沒有: 無論乙個或是幾個,就按照正常情況編譯 比如如果是case a或者case b就是./test -a

2。如果ch後有:乙個,後要加字元,也就是給了第三個引數乙個值 ,有空格或者沒有空格都是不影響的,./test -f  string

3。但如果ch後有兩個::,執行是不能加空格,./test -dfghj

需要注意的是,它加了空格不是說是錯誤的,而是不識別,系統還是認為你給的字串為空

hmt@hmt:~/文件/code/test$ ./test -d fgj

my gf is:(null)

hmt@hmt:~/文件/code/test$ ./test -dfghj

my gf is:fghj

hmt@hmt:~/文件/code/test$

4。最後一點,如果你給的選項是無效字元,也就是不在你給的選項內,它會走?分支

hmt@hmt:~/文件/code/test$ ./test -x

./test: invalid option -- 'x'

erron

hmt@hmt:~/文件/code/test$

除此之外,還有一些其他相關的全域性變數

getopt 函式的使用

每一天你都在使用大量的命令列程式,是不是感覺那些命令列引數用起來比較方便,他們都是使用getopt來實現的。在linux下使用getopt寫程式是一種比較方便的事情,下面來簡單的介紹一下getopt的使用。在討論引數處理之前,我們先明確兩個概念 選項 選項引數 gcc g o test test.c...

C函式getopt使用

getopt 分析命令列引數 相關函式表頭檔案 include 定義函式 int getopt int argc,char const argv const char optstring 函式說明 getopt 用來分析命令列引數。引數argc和argv是由main 傳遞的引數個數和內容。引數opt...

getopt函式的使用和例項

在 a a arg b b arg c 中,選項 a,b,c 引數 a arg,b arg 呼叫形式 getopt argc,argv,ab c 找了一遍以後返回 1,因此最後總是會返回 1的。a 選項a後面有引數,可以用乙個或者多個空格隔開,也可以不用空格,緊跟著a。即 a a arg 或者 aa...