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は、最初にすべてのオプションを解析しようとし、次にオプション以外の引数を処理するために残します。非オプション (つまり、コマンド) をヒットしたら解析を停止し、残りの引数をコマンド固有のオプション パーサーに渡すのが理想的です。