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


In reply to Re: End Of File Marker by John M. Dlugosz
in thread End Of File Marker by cmilfo

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.