2010-11-30 3 views
2

私はちょうど両方の機能を知っています。彼らの使い方を学ぶためにインターネットを検索してきました。コマンドラインオプションの入力を解析するのに非常に重要ですが、議論されていないものが見つかりました。オプションの入力を複製したgetopt_long()/ getopt()

重複したオプションを入力すると、両方の関数がそれを処理するための何もできません。私はこれに使用するlib関数があるかどうか疑問に思っていました。

私はそれを自分で処理する必要がある場合。私の考え方では、配列に短いオプションを集め、配列内に同じオプションを見つけることです。

もっと良い方法がありますか?

答えて

2

重複オプションで特別な処理を行う場合は、はオプション処理コードで状態を管理できます。 (すべてを使用する必要があるの引数で繰り返すことができるオプションについては、リストまたは一部をロード-v|--verboseよう

何かが追加verbosenessのために繰り返すことができる、とvebosity処理コードは

// initialize 
int verbose_level=0 

// in the getopt case for -v 
    verbose_level++; 

ですそのような)。

あなたはリピートがちょうど

// in the case 
    verbose_level = 1; 

、あなたが繰り返し

// in the case 
    if (verbose_level) { 
    // handle this case as an error... 
} 
+0

こんにちは、返信をありがとうを検出したい場合は、値を毎回設定し、特別な何かをしたくない場合は! – tao

+1

私は、このようなコマンドを入力すると意味します:> Appexec.exe --same-option --same-option。したがってこの場合、オプションの処理はユーザーにエラー情報を表示し、終了する必要があります。私は、そのようなlib APIがないと思います。それは自己によって行われなければならない。 – tao

関連する問題