Skip to content
Latchkey

stdout とは何か? 標準出力ストリーム

stdout (標準出力) は、プログラムが通常の結果を write するデフォルトのストリームで、通常は端末、または CI では job ログです。

コマンドが結果を出力するとき、通常はそれを stdout に write します。このストリームは、端末で目にするものであり、CI ログに現れるものです。通常の出力を stdout に保ち、stderr のエラーと分離しておくことが、プログラムの出力をクリーンに pipe し、キャプチャし、フィルタリングできるようにします。

stdout とは

stdout は file descriptor 1 で、プログラムの通常の出力のためのチャネルです。echoprintf、そしてほとんどのツールは、デフォルトで結果をここに送ります。

stdout をリダイレクトする

> (上書き) または >> (追記) で stdout をファイルに送れます。たとえば node build.js > build.log は、通常の出力を端末ではなくファイルにキャプチャします。

stderr と分離する理由

  • stdout は結果を運び、stderr は診断とエラーを運ぶ。
  • エラーがデータを汚すことなく、stdout を別のツールに pipe できる。
  • CI はストリームに基づいてログを色付けしたり折りたたんだりできる。

stdout を pipe する

pipe は、あるプログラムの stdout を次のプログラムの stdin に接続します。ls | wc -l。クリーンなデータを stdout に保つことが、pipeline を組み合わせ可能にします。

CI における stdout

CI は stdout を job ログにキャプチャするので、出力するものはすべて build 記録の一部になります。機械可読な結果を stdout に出力するツールは、後段の step で解析でき、これがレポートが pipeline を流れる仕組みです。

managed runner でのログ

Latchkey は stdout をライブの job ログにストリーミングするので、build を実行中に見守ることができます。明確で構造化された stdout を write することで、失敗した実行のデバッグがはるかに速くなります。

重要なポイント

  • stdout はデフォルトの出力ストリームで、file descriptor 1 です。
  • 通常の結果は stdout に行きます。リダイレクトや pipe が可能です。
  • CI は stdout を job ログとしてキャプチャするので、主要なデバッグ記録になります。

関連ガイド