Date:        Mon, 5 Jul 2021 00:41:23 +0100
    From:        Harald van Dijk <a...@gigawatt.nl>
    Message-ID:  <88337ff9-c726-c563-4d4f-3fa74d964...@gigawatt.nl>

  | I was looking at the HTML version. Aside from its search function, you 
  | can find it there under System Interfaces (top left frame), then System 
  | Interfaces (bottom left frame), then stdout (bottom left frame).

Thanks, exactly what I needed to know,

        System Interfaces (top left frame)        is XSH
        System Interfaces (bottom left frame)     is XSH.3
and     stdout (bottom left frame)                is XSH 3.stdin

(the stdin/stderr/stdout pages are all the same, the one identified is
stdin, probably because it is 0, though stderr would be more logical, as
normally the lexically first is chosen when there are multiple interfaces
in a page).

I never even thought of looking there, I don't regard those things as
being system interfaces I guess, I was looking mostly in XBD (definitions,
headers, etc).

But that's actually a very interesting page:

63796  CX  At program start-up, three streams shall be predefined and already 
open: stdin (standard input,     |
63797      for conventional input) for reading, stdout (standard output, for 
conventional output) for          |
63798      writing, and stderr (standard error, for diagnostic output) for 
writing. When opened, stderr shall  |
63799      not be fully buffered; stdin and stdout shall be fully buffered if 
and only if the file descriptor  |
63800      associated with the stream is determined not to be associated with 
an interactive device.

Once again, buffering exists and is known to exist - and what's more,
the standard actually *required* stdout to be buffered whenever it is
not associated with a terminal (which is no big surprise, as that's how
systems have always worked).

Note that there's nothing in there that even hints that applications are
responsible for flushing the buffers themselves, that is, and always has
been an automated part of exit processing (and is largely why _exit()
exists).

kre

Reply via email to