総合手引 | セクション 3 | English | オプション |
#include <unistd.h>extern char *suboptarg;
引数 optionp は、文字列へのポインタを指すポインタです。 引数 tokens は、文字列へのポインタを持つ、 NULL で終わる配列を指すポインタです。
getsubopt() 関数は、文字列の最初のトークンに適合する文字列を参照する tokens 配列中のポインタの、0 始まりのオフセットを返します。 文字列にトークンが一切含まれない、または tokens 中に適合する文字列が含まれない場合には -1 を返します。
トークンの形式が ``name=value'' である場合、 valuep で参照される先は、 トークンの ``value'' の部分の先頭を指すように設定されます。
getsubopt() から戻った時、 optionp が文字列の次のトークンの先頭を指すように設定されます。 または、それ以上のトークンがない場合には、 文字列の終わりの null を指します。 外部変数 suboptarg は、現在のトークンの先頭を指すように設定されます。 トークンがなかった場合は、 NULL となります。 引数 valuep は、トークンの ``value'' の部分を示すように設定されます。 または、``value'' 部分がなかった場合は NULL となります。
char *tokens[] = { #define ONE 0 "one", #define TWO 1 "two", NULL };amp;...
extern char *optarg, *suboptarg; char *option, *value;
while ((ch = getopt(argc, argv, "ab:")) != -1) { switch(ch) { case 'a': /* ``a'' オプションを処理 */ break; case 'b': option = optarg; while (*option) { switch(getsubopt(&option, tokens, &value)) { case ONE: /* ``one'' サブオプションを処理 */ break; case TWO: /* ``two'' サブオプションを処理 */ if (!value) error("no value for two"); i = atoi(value); break; case -1: if (suboptarg) error("illegal sub option %s", suboptarg); else error("missing sub option"); break; } break; }
GETSUBOPT (3) | June 9, 1993 |
総合手引 | セクション 3 | English | オプション |
このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.