1

2つのオプション-aと-cがあり、オプション-aには値が必要であり、-cには値がないかどうか疑問があります。

今私が->testopt-a-c[testoptはプログラムです]

次に、私のプログラムは-aの値として-cを取ります。値を持つオプションにその値として他のオプションがないことを確認できる方法はありますか?

問題は、システムが受け入れるということです-あるキーワードの値を、私が防ぐ必要のある別のキーワードとして。例-testopt-a-c。この場合、-aには必須の引数(value)があり、-cには値がありませんでした。しかし、私のgetoptは、これを「-c」は「-a」の値であると解釈します。 getopt。

4

1 に答える 1

1

値を持つように指定したため、オプション-cの値として取得します。オプションを逆に指定してプログラムを呼び出す場合-a-a

$ testopt -c -a

その後、オプション値が欠落していることを示すメッセージgetoptが返され(マニュアルページに従って)、コンソールにエラーが出力されます。'?'getopt

getopt残念ながら、引数にオプションの値があることを伝える方法はありません。その場合は、独自のオプション パーサーを実装する必要があります。

于 2012-09-27T09:24:15.027 に答える