C/Unix の引数解析ヘルパー

GNU には、オプション データ構造と getopt_long のコードを生成する gengetopt があります。 コマンド ラインを解析して構造を埋めるためのコード.. 学習はかなり簡単で、うまく機能します.

おまけとして、オプション構造体をコードに渡して、必要に応じてグローバル ストレージを回避できます。

これは GNU スタイルのセマンティクスを (明らかに) 提供し、オーディエンスのビルド環境が不明な場合に配布用のプロジェクトに含めるだけの十分な小ささです。


ことわざにあるように、「標準は優れたものよりも優れています」。したがって、私は常に getopt_long() と非 GNOME/glibby のものを使用し、それを行うものには glib のものを使用します。

同じ理由で、getopt_long() に比べて欠けている機能がたくさんありますが、Python アプリケーションでは常に optparse を使用していますが、それが Python の標準です。


同じものを探していたので、この古いトピックの回答を読みました。最後に、What parameter parser libraries are there for C++? に記載されている dropt を選択しました。 .実はCで実装されているので、ここでも言及する価値があると思います。 C 実装をラップする C++ ヘルパーは使用していません。

dropt に関する興味深い事実:

  • 軽量
  • 標準ライブラリのみに依存
  • 急な学習曲線はありません
  • 基本的な引数の解析には十分で、強力な機能がいくつかあります
  • 簡単に拡張
  • 無制限のライセンス (zlib 風)

それはです 限定的ですが。たとえば、パラメーターの構文仕様を少し変更する必要がありました。これはまさにこの場合に受け入れられましたが、もちろん仕様が石で刻まれることもあります.

結論として、少なくとも迅速なプロトタイピング、ツール開発、社内プロジェクトには dropt をお勧めします。