パイピングは、1 つのプロセス A の出力を B の入力に接続することによって機能します。
- A はその出力を閉じます。 B は EOF を取得します。
- B はその入力を閉じます。 A は、次のバイトを書き込もうとすると、出力が利用できないというエラーを受け取ります。
これらの 2 つのケースは非常に一般的であるため、処理は C 標準ライブラリに移動されました。
head
必要な量を読み取った後、入力ファイルを閉じます。パイプが片側から閉じられると、反対側で書き込みエラーが発生します。これにより base64
が発生します 閉じると、cat
が発生します。 閉じる。
base64
の後 出力 10 バイト、head
十分な入力と終了を取得します。前者がさらにバイトを出力しようとすると、SIGPIPE シグナルを受信するため、終了します。同じ理由で、 cat
順番に終了します。