in reply to End Of File Marker

The ^Z character exists because in CP/M directory entries only held the number of sectors; nowhere did it store an exact length. So the only way to find the real end of a file was with a marker.

The ^D used for a similar purpose in Unix is needed for things that are not files. How do you know you reached the end of a stream of text coming from a terminal?

I suppose that's not needed anymore with pipes/sockets/etc using out-of-band signaling. But on a serial connection with only 2 pins hooked up, there is no way to indicate that the end-of-transmission other than in-band.

I don't know if the EOF marker character is visible itself, or just sets the eof flag and gets eaten.

Even today, type perl on a command line and start typing. How do you indicate you're done? You don't want to actually disconnect the transport layer of your console, since that will affect the underlying shell session as well. Typing the sentinal character is the way it works on many systems.

—John