1、函式說明
表頭檔案:#include
函式宣告:int getopt(int argc, char * const argv, const char *optstring);
函式說明:getopt()用來分析命令列引數。引數argc和argv是由main()傳遞的引數個數和內容。引數optstring 則代表欲處理的選項字串。此函式會返回在argv 中下乙個的選項字母,此字母會對應引數optstring 中的字母。如果選項字串裡的字母後接著冒號「:」,則表示還有相關的引數,全域變數optarg 即會指向此額外引數。如果getopt()找不到符合的引數則會印出錯資訊,並將全域變數optopt設為「?」字元,如果不希望getopt()印出錯資訊,則只要將全域變opterr設為0即可。
選項的使用定義規則類似:
ab:c::
意思是:
a 後沒有冒號,表示沒有可以引數
b 後跟乙個冒號,表示有乙個必要的引數
c 後跟兩個冒號,表示有乙個可選的引數
長選項的定義相同,但用逗號分割。
返回值:如果找到符合的引數則返回此引數字母,如果引數不包含在引數optstring 的選項字母則返回「?」字元,分析結束則返回-1.
2、例子程式
下面是乙個使用getopt函式讀取引數的例子程式,該程式支援 –p –s –b –c的引數,並將這些引數值讀取後進行列印。你可以根據需要將這些**稍作修改用於自己的程式中。
/** getopt.c
* author: coonxu
* email: [email protected]
* 這是乙個使用getopt函式讀取引數的例子程式,該程式支援 -p -s -b -c的引數,
* 並將這些引數值讀取後進行列印。你可以根據需要將這些**稍作修改用於自己的程式中。
#include
#include
int main(int argc, char **argv)
int ch;
opterr = 0;
while( ( ch = getopt( argc, argv, "s:b:c:p:" ) ) != eof )
switch(ch)
case 's':
printf("s opt: %s\n", optarg);
break;
case 'b':
printf("b opt: %s\n", optarg);
break;
case 'c':
printf("c opt: %s\n", optarg);
break;
case 'p':
printf("p opt: %s\n", optarg);
break;
case '?':
printf( "illegal option: %c\n", ch );
break;
return 0;
}
使用getopt在Linux下獲取命令列引數
使用getopt在 linux 下獲取命令列引數 getopt 在unix 下的命令列程式特別好用,特別是在你有許多引數要加入時。一般來說,你可以透過 man 3 getopt 來獲得其說明。這個函式很好用,也很簡單,但網上關於這個函式的中文介紹實在是少之又少,這篇文章就簡單講述一下如何利用 get...
Linux下的getopt 函式
linux下的getopt 函式被設計用來處理命令列引數,使用時只要新增 include 即可。函式原型如下 int getopt int argc,char const argv,const char optstring 當給定了命令引數的數量 指向這些引數的陣列和選項字串後,getopt 將返回...
用Sendmail在Linux下架設郵件伺服器
sendmail作為一種免費的郵件伺服器軟體,已被廣泛的應用於各種伺服器中,它在穩定性 可移植性 及確保沒有bug等方面具有一定的特色,且可以在網路中搜尋到大量的使用資料。一.安裝sendmail 完全安裝red hat linux 9.0時,sendmail就會自動內建,版本號為8.12.8 4。...