質問: 標準出力 + 標準入力」なんだけど、実は標準入力/標準出力は文字以外も書き込めるというオチなのでしょうか?
回答: `|`によるパイプや`>` `<`等によるリダイレクトは、シェル(Bash等)の機能です。 シェルのコマンドライン、シェルスクリプト、あるいはプログラミング言語で良くあるsystem関数のようにシェル経由でプログラムを起動する場合につかえます。 質問(1) パイプやリダイレクトの対象となるプログラムはシェルから直接起動できるコマンドであれば、何でもつかえます。もちろん、標準入力や標準出力を使わないプログラムだと意味ないですが。 質問(2) このあたりを理解するためには、ファイルディスクリプタという物を理解する必要があります。 そこを飛ばして概要だけ説明すると、パイプは入り口と出口があり、入り口に書いたデータが出口から読めます。 前段コマンドの標準出力をパイプの入り口につなぎ、後段コマンドの標準入力をパイプの出口につなぐことで、シェルはパイプ処理を行っています。 ちょうど、リダイレクトが、コマンドの標準出力をファイルにつなぐのと同じようなものです。 ちゃんと理解するためには、pipe/dup2などのシステムコールを使って、Cで上記を行うプログラムを自分で書いてみる必要があるでしょうね。シェルの一部の機能を自分で作ってみると言うことです。