getopt函式分析

2021-05-22 03:09:48 字數 524 閱讀 6945

函式getopt主要用於拆分命令列引數,用這個函式就不自己寫命令列引數解析程式了,以下**摘自tcpdump原始碼,對這個函式比較感興趣,故對此進行分析注釋,因水平實在不敢恭維,不足之處希望能一起**

函式getopt()有三個引數,nargc,nargv就是命令列傳過來的argc和argv字串ostr,它是作為選項的字串的列表。類似於ostr="ab:c:d:"這種形式,其中a,b,c,d為選項字元(單個字元表示),後面的:表示這個選項後面跟有引數。

例如ostr="ac:d:",程式名稱為test,在命令列下執行該程式:

test -a -cfilename  -d haha

在這個命令列引數中,-a和-d就是選項元素,去掉'-',a,c,d就是選項。filename是c的引數,haha是d的引數。 

一般在程式中如下呼叫

while ((op = getopt(argc, argv, "ac:d:")) != -1)

實現選項,引數的處理

getopt 函式分析

我們知道,linux中在命令列下呼叫程式時,所使用的命令由三部分組成。比如 gcc o o hello hello.c 其中 1 gcc是 命令的名字,2 o是 可選字元,o也是可選字元,3 hello 和 hello.c就是命令列 引數。getopt 函式就是用來解析命令列引數和可選字元的。所以g...

getopt 函式分析

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

getopt 函式 分析命令列引數

標頭檔案 include 定義函式 int getopt int argc,char const argv,const char optstring 函式說明 getopt 用來分析命令列引數。1 引數argc 和argv 是由main 傳遞的引數個數和內容。2 引數optstring 則代表欲處理...