linux 中getopt和getopt_long 用法解析
linux 英文手冊:
http://man7.org/linux/man-pages/man3/getopt.3.html
參考部落格:
http://blog.csdn.net/lyh66/article/details/50098739
getopt解析引數
執行main(argc,argv),使用getopt(argc,argv,optstring)解析引數
引數optstring為選項字串, 告知 getopt()可以處理哪個選項以及哪個選項需要引數,如果選項字串裡的字母后接著冒號“:”,則表示還有相關的引數。
如getopt(argc, argv, “ls:fc:h::d:”)中,l和f 選項不需要引數,s,c,d需要引數,h可以有引數也可以沒有引數。
如在命令列:gcc -o main main.c
main -l -s aa -f -c kk
1.單個字元,表示選項,l,s,f,c,h,d均為選項
2.單個字元後接一個冒號:表示該選項後必須跟一個引數,引數緊跟在選項 後或者以空格隔開,該引數的指標賦給optarg
3.單 個字元後跟兩個冒號,表示該選項後可以跟一個引數,也可以不跟。如果跟一個引數,引數必須緊跟在選項後不能以空格隔開,如果沒有跟引數,則 optarg=NULL。
返回值
getopt()每次呼叫會逐次返回命令列傳入的引數,當沒有引數的最後的一次呼叫時,getopt()將返回-1
當解析到一個不在optstring裡面的引數,或者一個必選值引數不帶值時,返回’?’
其 它情況可以看上邊連結,例子也可以看上邊連結
getopt_long解析引數
int getopt_long(int argc, char * const argv[],
const char *optstring,
const struct option *longopts, int *longindex);
getopt_long除了可以支援-開始的單字元開始選項,還支援–開始選項。如果只支援–開始選項,將optstring設定為”“。
struct option {
const char *name;
int has_arg;
int *flag;
int val;
};
結構體option各個欄位的意思如下:
name 長選項的名字
has_arg
no_argument(或0):選項不攜帶引數;required_argument(或1):選項需要引數;optional_argument(或2):選項攜帶引數可選
flag
指定該長選項的返回值。如果flag是NULL,getopt_long會返回val。(比如,呼叫者可以設定val為短選項字元)否則,getopt_long會返回0,且flag指向的值設定為val的值,前提是該選項成功找到了。
val
當做返回值,或把值載入進flag所指的記憶體中。
longopts指向的陣列的最後一個元素值都設定為0。
如果longindex不是NULL,則它指向getopt_long()獲得的長選項longopts的下標。
相關文章
- linux 中解析命令列引數 (getopt_long用法)Linux命令列
- linux-解析命令列選項getopt_long用法Linux命令列
- getopt和getopt_long
- getopt_long函式基本用法-linux函式Linux
- c++中getopt和getopt_long的使用方法C++
- getopt與getopt_long
- Linux選項解釋-getopt和getopt_long函式Linux函式
- linux的命令列解析引數之getopt_long函式使用Linux命令列函式
- 1.linux的命令列解析引數之getopt_long函式Linux命令列函式
- 命令列引數解析函式getopt_long() 使用詳解命令列函式
- 命令列引數選項處理:getopt()及getopt_long()函式使用命令列函式
- linux下getopt函式的用法Linux函式
- 使用getopt_long()從命令列獲取引數命令列
- 使用getopt_long()從命令列獲取引數,struct option命令列Struct
- linux中#和## 用法Linux
- Linux-getoptLinux
- linux getopt 命令Linux
- sql中的group by 和 having 用法解析SQL
- linux系統呼叫getoptLinux
- shell中getopt的使用
- Linux中&&和&,|和||用法及區別詳解!Linux
- oracle中merge into用法解析Oracle
- linux之getopt 函式(轉)Linux函式
- Linux中getopt函式、optind等變數使用詳解Linux函式變數
- linux中sed用法Linux
- Linux下getopt函式的使用Linux函式
- RecyclerView用法和原始碼深度解析View原始碼
- getopt在Python中的使用Python
- Linux gdb偵錯程式用法全面解析Linux
- linux系統getopt函式詳解Linux函式
- linux中grep基本用法Linux
- Linux中wget用法Linuxwget
- Linux shell 用法和技巧Linux
- Linux shell用法和技巧Linux
- getopt for windowsWindows
- Android屬性動畫完全解析(中),ValueAnimator和ObjectAnimator的高階用法Android動畫Object
- 深入解析Vue中watch的高階用法Vue
- ORACLE 中ROWNUM(偽列)用法解析(轉載)Oracle