(libc.info)Linked Channels


Next: Independent Channels Up: Stream/Descriptor Precautions
Enter node , (file) or (file)node

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.  Note: 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.


automatically generated by info2www.cgi version 1.2.2.9