(libc) Linked Channels

Info Catalog (libc) Stream/Descriptor Precautions (libc) Independent Channels
 
 13.5.1 Linked Channels
 ----------------------
 
 Channels that come from a single opening share the same file position;
 we call them "linked" channels.  Linked channels result when you make a
 stream from a descriptor using `fdopen', when you get a descriptor from
 a stream with `fileno', when you copy a descriptor with `dup' or
 `dup2', and when descriptors are inherited during `fork'.  For files
 that don't support random access, such as terminals and pipes, _all_
 channels are effectively linked.  On random-access files, all
 append-type output streams are effectively linked to each other.
 
    If you have been using a stream for I/O (or have just opened the
 stream), and you want to do I/O using another channel (either a stream
 or a descriptor) that is linked to it, you must first "clean up" the
 stream that you have been using.   Cleaning Streams.
 
    Terminating a process, or executing a new program in the process,
 destroys all the streams in the process.  If descriptors linked to these
 streams persist in other processes, their file positions become
 undefined as a result.  To prevent this, you must clean up the streams
 before destroying them.
 
Info Catalog (libc) Stream/Descriptor Precautions (libc) Independent Channels
automatically generated by info2html