使用系統呼叫getopt簡化對命令列引數的解析

2021-08-29 03:44:32 字數 1005 閱讀 2576

有關系統呼叫getopt:

宣告:cpp **

#include

int getopt(int argc, char *const argv, const

char *optstring);  

extern

char *optarg;  

extern

int optind, opterr, optopt;  

使用方法:在while迴圈中反覆呼叫,直到它返回-1。每當找到乙個有效的選項字母,它就返回這個字母。如果選項有引數,就設定optarg指向這個引數。

當程式執行時,getopt()函式會設定控制錯誤處理的幾個變數:

char *optarg ──如果選項接受引數的話,那麼optarg就是選項引數。

int optind──argv的當前索引,當while迴圈結束的時候,剩下的運算元在argv[optind]到argv[argc-1]中能找到。

int opterr──當這個變數非零(預設非零)的時候,getopt()函式為"無效選項」和「缺少選項引數」這兩種錯誤情況輸出它自己的錯誤訊息。可以在呼叫getopt()之前設定opterr為0,強制getopt()在發現錯誤時不輸出任何訊息。

int optopt──當發現無效選項的進修,getopt()函式或者返回'?'字元,或者返回字元':'字元,並且optopt包含了所發現的無效選項字元。

例子:cpp **

/* getopttest.c ── 練習系統呼叫getopt()的用法,為實現shell內建命令getopts和各個命令的命令列引數解析做準備 */

#include

#include

// 程式接受兩個引數:-a -b ,其中-b選項必需帶乙個引數(整數)

int main(int argc, char *argv)  

}  }  編譯、執行 :

[本帖最後由 verge 於 2006-5-14 11:57 pm 編輯 ]

Linux系統呼叫 getopt 函式

函式原型 include int getopt int argc,char const ar const char optstring 引數說明 前兩個引數是main 函式的兩個引數,第3個引數是選項字串。返回值為int型別,我們知道char型別是可以轉換成int型別的,每個字元都有其對應的整數值,...

使用kvc機制簡化對json的解析

在 ios開發中,我們經常需要對伺服器的傳回來的json進行解析,特別是對哪些字段特別多的就會又煩躁的情緒。都是一樣的東西,要為每個property賦值,真是累人啊。舉個簡單的例子吧。伺服器會過來的資料是 totalpage 100,page 2,desc x items 這個結構還是蠻簡單的吧。一...

ios使用kvc機制簡化對json的解析

在 ios開發中,我們經常需要對伺服器的傳回來的json進行解析,特別是對哪些字段特別多的就會又煩躁的情緒。都是一樣的東西,要為每個property賦值,真是累人啊。舉個簡單的例子吧。伺服器會過來的資料是 totalpage 100,page 2,desc x items 這個結構還是蠻簡單的吧。一...