2016-03-29 19 views
0

getopt_longを指定することは可能ですオプションが指定されている場合は2つの引数が必要ですか?C getopt_longオプションに2つの必須引数があります

たとえば、-iが存在する場合、次に2つの引数が必要になり、存在しない場合は解析が失敗します。

+3

短い答えではありません。 – isedev

+0

よろしくお願いします別の方法を見つけるでしょう! –

+0

これを処理する方法が追加されました。 – sabbahillel

答えて

0

manualgetopt_long() -- proper way to use it?によると、各引数は1つの値で渡され、optargを介して渡されます。

あなたがする必要があるのは、最初の引数にはoptargを使用し、getopt()で使用されるポインタはポインタとして、引数の後ろを指すstrlen(optarg)を使用すると思われます。それから(あなたが-iにいるとき)、次の文字列が引数か次のオプションかどうかをテストします。次のオプションであれば、エラーが発生します。 2番目の引数の場合は、それを拾います。

optind変数を使用し、処理を行うにはargv [optind]をポイントする必要があります。それはそう、最終的にすべての非オプションは終わりです スキャンとしてデフォルトで

は、getargs()はARGVの内容を置換するので

しかし、これは動作しない場合があります。

get_opt()この2番目の引数はスキップする必要がありますが、スキップしたり、後で保存してもわからない(マニュアルを読んで)。コードを書くときには、デバッグ出力を確認する必要があります。私はこれのためのテストを書く時間がありません。

+0

これは素晴らしい答えです、ありがとう! –

関連する問題