2012-03-16 6 views
16

可能性の重複:
Ruby $stdout vs. STDOUT

は一般$stderrを使用してより優先STDERR、またはその逆ですか?

とは何ですかSTDOUT$stdout

+4

あなたの質問は他の場所で答えられたと思います:http://stackoverflow.com/questions/6671716/ruby-stdout-vs-stdout –

答えて

19

逆に、$stderrを使用することが好ましい。

グローバル変数として$stderrを再割り当てできますが、定数としてSTDERRは再割り当てしないでください(警告が表示される)。

通常は両方とも同じ標準エラーファイルを指しますが、場合によってはすべての出力を別の場所(ログファイルや文字列バッファなど)に一時的にリダイレクトすることもできます。 $stderrを再割り当てし、すべてのコードがそれを尊重します(最初はSTDERRの代わりに$stderrを使用するほどスマートだった場合)。

+0

私は内部関数が 'STDERR'か' $ stderr '。すべての書き込みと読み取りを明示的に実行する必要があるかもしれません。その時点で専用の他の変数を使用する必要があります。 – Linuxios

+0

@Linux:どの "内部関数"がstderrに書き込むのですか?私の心に来るのは、あなたがそれらを修正することによって根絶することのできる警告だけです。 –

+0

申し訳ありません。私は 'puts'と' gets'に関して 'STDOUT'と' $ stdout'を意味しました。うわー。 – Linuxios

関連する問題