さまざまなエラーを報告するときに適切なエラープレフィックスをどのように見つけますか?これを行う方法についてのガイドラインまたは概要はありますか?多くのコマンドでパターンを見ることができますが、私のソフトウェアにどのコマンドを採用するべきかを知ることは困難です。
error:
私が「間違った接頭辞」と呼ぶのは、、、usage:
などfatal:
のようなタイプの接頭辞を表します。warning:
時には、これらのプレフィックスが複数ある場合があります。
実際のケースは次のとおりです。
$ ls non/existant/directory
ls: cannot access 'non/existant/directory': No such file or directory
$ git status
fatal: not a git repository (or any of the parent directories): .git
$ apt version
E: Invalid operation version
$ gcc
gcc: fatal error: no input files
compilation terminated.
答え1
これは100%プログラマーの決定です。これらのいくつかは問題の重大度によって決定され、以下に関連しています。システムログ重大度レベル(良い間違いまたは警告する)しかし、stdout / stderrメッセージの場合、これらのメッセージはプログラムの作成者が好きな任意の形式にすることができます。
一部のライブラリ(GLIBなど)には独自のライブラリがあります。ヘルパー機能警告とエラーは「標準化された」形式で報告されますが、これはシステム全体のポリシーではありません。
errno
stderror
などの関数はエラーperror
メッセージに「サフィックス」を提供しますが、これは人間が読むことができるエラーコード表現です(例:EPERM
- >許可されていない操作)、プレフィックスはまだプログラマによって「選択」されます。
答え2
すべてのプログラムには独自のエラー報告規則があるため、解析できる単一の標準はありません。最良の方法は、プログラムの戻りコード($?
bashで利用可能)を確認することです。 0 以外の場合は、プログラムでエラーが発生しました。その後、プログラムは標準出力と標準エラーを収集してレポートに含めることができます。