STDOUT -> IO
[permalink][rdoc]標準出力。$stdout のデフォルト値。 $stdout も参照してください。
STDOUT は、 ruby プロセスが起動された時点での標準出力を表します。起動時点では $stdout も同じ値に初期化されています。
$stdout に他の出力オブジェクトを代入することで簡易なリダイレクトを実現できます。そして、 $stdout に STDOUT を代入すればこのリダイレクトを復元できるわけです。
STDOUT は ruby 自体が起動された時点での標準出力です。「システムにおける標準の出力ストリーム」とは異なります。
多くのシステムでは標準の出力ストリームは端末です。 ruby 自体が他のストリームに向けて出力をリダイレクトされた状態で起動された場合、 STDOUT が保持するのは端末ではなく、リダイレクト先のストリームです。