>>632
ファイルの中のデータじゃなくて、
ファイルの属性としてファイルのサイズを持っています。
だから終端文字がなくても分かります。

MS-DOS/Windowsもそうですが、
先祖のCP/Mがblock単位のファイルサイズしか持ってなかったので、
Ctrl-Zを終端文字とするスタイルを踏襲しています。
要するにCP/Mではバイナリファイルはブロック単位の長さしか持つことができなかったのです。
またテキストファイルはCtrl-Zをデータとして持つことができませんでした。

C/UNIXがこの問題に大きな簡潔さをもたらしたことが分かるでしょう。

ちなみに、終端文字を設定するとすれば、
Ctrl-Zでなくて、転送終了を表すCtrl-D(EOT)が適当だったと思いますね。