getopt_long
これまでのところ、コマンド ライン C プログラムのオプションを解析するために使用してきました。
getopt_long
非オプションの引数にヒットしたときに解析を停止する方法はありますか? そうでない場合、C でこれを処理する最善の方法は何ですか?
例を挙げると、コマンドをgitと同様の方法で処理し、コマンドの前に一般的な引数を置き、その後にコマンド固有の引数を置きたいと思います。
git [general options] <command> [command options]
例えば:
git --bare commit -a
git -p --bare status -s
-p
および--bare
は一般的なオプションであり、すべてのコマンドで使用できますが、-a
はコマンドに固有であり、commit
コマンドに-s
固有status
です。
Usinggetopt_long
は、最初にすべてのオプションを解析しようとし、次にオプション以外の引数を処理するために残します。非オプション (つまり、コマンド) をヒットしたら解析を停止し、残りの引数をコマンド固有のオプション パーサーに渡すのが理想的です。