進行状況レポート/ログ情報はstderrまたはstdoutに属していますか?

進行状況レポート/ログ情報はstderrまたはstdoutに属していますか?

進行状況レポートとログメッセージ(「Doing foo; foo done」など)を印刷する必要がある公式POSIX、GNU、またはその他のガイドラインはありますか?個人的には、stdoutをリダイレクトしてプログラムの実際の出力を取得できるようにstderrに書き込む傾向があります。最近、誰かが私に進行中のレポートは実際にはエラーではないので、これは良い習慣ではなく、エラーメッセージだけをstderrに印刷する必要があると言いました。

どちらの立場にも意味があり、もちろん、実行している作業の詳細に応じて、どちらかを選択できますが、それについて一般的に認められている標準があるかどうか疑問に思います。 POSIX、GNUコーディング標準、または他の広く認められているベストプラクティスのリストに特定のルールがありません。

同様の質問がいくつかありますが、正確な問題を解決するわけではありません。

それでは、進捗レポートやその他の情報メッセージ(プログラムの実際の出力の一部ではない)を印刷するための公式の規則はありますか?

ベストアンサー1

POSIX標準誤差を次のように定義します。

診断出力書き込み用

これはエラーメッセージにのみ使用を制限しません。進捗情報を診断出力として扱うため、標準エラーに属します。

おすすめ記事