一個使用getopt()函式獲取命令列引數的例子(轉)
一個使用getopt()函式獲取命令列引數的例子(轉)[@more@]
#include
int
main (argc, argv)
int argc;
char **argv;
{
int c;
int digit_optind = 0;
while (1)
{
int this_option_optind = optind ? optind : 1;
int option_index = 0;
static struct option long_options[] =
{
{"add", 1, 0, 0},
{"append", 0, 0, 0},
{"delete", 1, 0, 0},
{"verbose", 0, 0, 0},
{"create", 1, 0, 'c'},
{"file", 1, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long (argc, argv, "abc:d:012",
long_options, &option_index);
if (c == -1)
break;
switch (c)
{
case 0:
printf ("option %s", long_options[option_index].name);
if (optarg)
printf (" with arg %s", optarg);
printf (" ");
break;
case '0':
case '1':
case '2':
if (digit_optind != 0 && digit_optind != this_option_optind)
printf ("digits occur in two different argv-elements. ");
digit_optind = this_option_optind;
printf ("option %c ", c);
break;
case 'a':
printf ("option a ");
break;
case 'b':
printf ("option b ");
break;
case 'c':
printf ("option c with value `%s' ", optarg);
break;
case 'd':
printf ("option d with value `%s' ", optarg);
break;
case '?':
break;
default:
printf ("?? getopt returned character code 0%o ?? ", c);
}
}
if (optind < argc)
{
printf ("non-option ARGV-elements: ");
while (optind < argc)
printf ("%s ", argv[optind++]);
printf (" ");
}
exit (0);
}
#include
int
main (argc, argv)
int argc;
char **argv;
{
int c;
int digit_optind = 0;
while (1)
{
int this_option_optind = optind ? optind : 1;
int option_index = 0;
static struct option long_options[] =
{
{"add", 1, 0, 0},
{"append", 0, 0, 0},
{"delete", 1, 0, 0},
{"verbose", 0, 0, 0},
{"create", 1, 0, 'c'},
{"file", 1, 0, 0},
{0, 0, 0, 0}
};
c = getopt_long (argc, argv, "abc:d:012",
long_options, &option_index);
if (c == -1)
break;
switch (c)
{
case 0:
printf ("option %s", long_options[option_index].name);
if (optarg)
printf (" with arg %s", optarg);
printf (" ");
break;
case '0':
case '1':
case '2':
if (digit_optind != 0 && digit_optind != this_option_optind)
printf ("digits occur in two different argv-elements. ");
digit_optind = this_option_optind;
printf ("option %c ", c);
break;
case 'a':
printf ("option a ");
break;
case 'b':
printf ("option b ");
break;
case 'c':
printf ("option c with value `%s' ", optarg);
break;
case 'd':
printf ("option d with value `%s' ", optarg);
break;
case '?':
break;
default:
printf ("?? getopt returned character code 0%o ?? ", c);
}
}
if (optind < argc)
{
printf ("non-option ARGV-elements: ");
while (optind < argc)
printf ("%s ", argv[optind++]);
printf (" ");
}
exit (0);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10796304/viewspace-962582/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- linux的命令列解析引數之getopt_long函式使用Linux命令列函式
- 1.linux的命令列解析引數之getopt_long函式Linux命令列函式
- python獲取命令列引數的程式碼Python命令列
- 將使用回撥函式作為引數的函式改造為返回 Promise 的一個具體例子函式Promise
- Linux下getopt函式的使用Linux函式
- 【C】 33_main 函式與命令列引數AI函式命令列
- Rust 問答之如何獲取 main 函式的引數RustAI函式
- JS陣列at函式(獲取最後一個元素的方法)介紹JS陣列函式
- URL引數獲取/轉碼
- vue獲取位址列引數方法Vue
- zblog獲取GET/POST等值函式“GetVars”引數和使用方法介紹函式
- 使用 PHP 的 Filter 函式(過濾器)高效、安全地獲取請求引數PHPFilter函式過濾器
- 如何透過AST樹去獲取JS函式引數名ASTJS函式
- 超簡潔的js獲取位址列引數JS
- 使用url引數傳遞SAP Analytics Cloud filter的一個例子CloudFilter
- shell指令碼中main函式中$#獲取不到指令碼傳入引數個數淺析指令碼AI函式
- Rust 程式設計,讀取命令列引數Rust程式設計命令列
- js獲取頁面地址引數並將其轉化為一個物件JS物件
- c語言獲取陣列長度的函式C語言陣列函式
- Python使用Argparse讀取命令引數Python
- 命令列引數解析模組argparse的使用命令列
- JS獲取瀏覽器位址列的多個引數值的任意值JS瀏覽器
- 另一個go命令列引數處理器 - cmdrGo命令列
- 寫了一個分段函式,引數是單個數字,執行函式 畫圖函式
- 利用雲函式來實現獲取特定路徑+引數的小程式碼函式
- Vue獲取位址列引數並做改變Vue
- 使用argparse模組新增命令列引數命令列
- 命令列解析函式命令列函式
- 函式引數 引數定義函式型別函式型別
- Vue-render函式的三個引數Vue函式
- gofiber: 獲取引數Go
- 一個map函式引發的血案函式
- 獲取url上的引數
- Python中將函式作為另一個函式的引數傳入並呼叫Python函式
- 【函式】Oracle12c 列轉行函式使用listagg函式Oracle
- 獲取連結上的引數,返回一個Object物件 - 戴向天Object物件
- linux getopt 命令Linux
- Pythonrandom模組(獲取隨機數)常用方法和使用例子Pythonrandom隨機
- JDBC獲取表的列數JDBC