#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...