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