「標準入力」と「標準出力」と「標準エラー出力」の違い
それぞれの用語の意味
| 用語 | 意味 |
|---|---|
| 標準入力 | プログラムとかにおける、何も指定されなかったときに使われる入力元( ≒ キーボードからの入力) |
| 標準出力 | プログラムとかにおける、何も指定されなかったときに使われる出力先( ≒ 画面への出力) |
| 標準エラー出力 | プログラムとかにおける、何も指定されなかったときに使われる、エラーの出力先( ≒ (エラーの)画面への出力) |
似ているところ
どれも、プログラムとかにおける「何も指定されなかったら、これを使うからね!」な入力元・出力先です。
違うところ
役割が違います。
それぞれ、特に指定がなかったときに使われる
標準入力:入力元
標準出力:出力先
標準エラー出力:エラーの出力先
です。
実は、ですね。
プログラムさんは、かなりの重病人なのです。
ベッドの上から動いちゃダメ、絶対安静状態です。

絶対安静状態のプログラムさんには、いろいろな不便が出ないようにするために、3本の管がつなげられています。

1本目の管はプログラムさんに何かを入れてあげるときに使う管です。
お水とか食料を、その管から流し込んであげます。

2本目の管はプログラムさんから普通に出てくるものが通る管です。
きれいな話ではありませんが、う○ちとか お○っこが通ります。

3本目の管はプログラムさんから普通は出てこないものが通る管です。
吐血した血とか嘔吐したもんじゃ焼きとかが通ります。

この3本の管のうち、1本目の管が標準入力です。
プログラムさんに入ってくるものが通る管です。

2本目の管が標準出力です。
プログラムさんから普通に出てくるものが通る管です。

3本目の管が標準エラー出力です。
プログラムさんから普通は出てこないものが通る管です。

また、普通はキーボードからの入力が標準入力になっています。
画面(ディスプレイ)への出力が標準出力と標準エラー出力になっています。

出力先がどちらも画面(ディスプレイ)なのが、標準出力と標準エラー出力の違いを分かりにくくさせている原因でしょう。
標準出力と標準エラー出力の違いは管の違いです。
標準出力も標準エラー出力も管の先が普通はディスプレイにつながっています。
そのため違いがないように感じるのでしょう。

ですが、使っている管が違います。
その気になれば管の先につながっているものを変えられます。
例えば標準出力は画面に、標準エラー出力はファイルにしたりもできるのです。

標準出力を画面に、標準エラー出力をファイルにすれば、普通の内容とエラーの内容が分かれて便利ですよね。
普通の出力とエラーの出力を分けて管理できるように出力用の管が2本用意されているのです……多分。






