@ledsun blog

無味の味は佳境に入らざればすなわち知れず

標準入力とはなにか?

雑に言うと、UNIX用のプログラムがキーボードからの文字入力を受けとる口です。 プログラムの標準入力は、親プロセスの標準入力を引き継ぎます。 対話シェル(Bashとかzshとか)は入力をキーボードから受け取ります。 シェルからプログラムを起動すると、これを引き継いで標準入力はキーボードからの入力になります。

UNIX以前は、プログラムの入力装置と出力装置は、プログラムを起動する毎に指定したようです。 おそらくコンピューター毎に入力がパンチカードや磁気テープだったり、出力がプリンターだったりという環境を想定していたのだと思います。 UNIXでは、デフォルトの入力装置をキーボード、出力装置をモニターにして、プログラムを起動する度に、入力装置と出力装置を指定しなくてよくしました。 それで「標準」入力と名付けたようです。 1970年代にキーボードとモニターが普及し、大抵のコンピューターにキーボードとモニターがついていると想定できるようになったのだと思います。

UNIXのバージョンが進むにつれて標準エラー出力が追加され現在の振る舞いになりました。 この動きが多くのOSやプログラミング言語に引き継がれているようです。 いまではLinuxでもMacでもWindowsでも、Javaでも.NETでもPythonでもRubyでもPHPでも標準入力を持つようになりました。

参考