(Feature Test Macros): Add _POSIX_C_SOURCE definition.
[kopensolaris-gnu/glibc.git] / manual / pipe.texi
index ed5a402..274b93d 100644 (file)
@@ -73,7 +73,8 @@ The process has too many files open.
 
 @item ENFILE
 There are too many open files in the entire system.  @xref{Error Codes},
-for more information about @code{ENFILE}.
+for more information about @code{ENFILE}.  This error never occurs in
+the GNU system.
 @end table
 @end deftypefun
 
@@ -112,7 +113,7 @@ function; see @ref{Running a Command}.  It executes the shell command
 command to complete, it creates a pipe to the subprocess and returns a
 stream that corresponds to that pipe.
 
-If you specify a @var{mode} argument of @code{"r"}, you can read from the 
+If you specify a @var{mode} argument of @code{"r"}, you can read from the
 stream to retrieve data from the standard output channel of the subprocess.
 The subprocess inherits its standard input channel from the parent process.
 
@@ -172,7 +173,7 @@ permissions; see @ref{Setting Permissions}.
 
 The normal, successful return value from @code{mkfifo} is @code{0}.  In
 the case of an error, @code{-1} is returned.  In addition to the usual
-file name syntax errors (@pxref{File Name Errors}), the following
+file name errors (@pxref{File Name Errors}), the following
 @code{errno} error conditions are defined for this function:
 
 @table @code
@@ -192,15 +193,16 @@ system.
 @section Atomicity of Pipe I/O
 
 Reading or writing pipe data is @dfn{atomic} if the size of data written
-is less than @code{PIPE_BUF}.  This means that the data transfer seems
-to be an instantaneous unit, in that nothing else in the system can
-observe a state in which it is partially complete.  Atomic I/O may not
-begin right away (it may need to wait for buffer space or for data), but
-once it does begin, it finishes immediately.
+is not greater than @code{PIPE_BUF}.  This means that the data transfer
+seems to be an instantaneous unit, in that nothing else in the system
+can observe a state in which it is partially complete.  Atomic I/O may
+not begin right away (it may need to wait for buffer space or for data),
+but once it does begin, it finishes immediately.
 
 Reading or writing a larger amount of data may not be atomic; for
 example, output data from other processes sharing the descriptor may be
-interspersed.
+interspersed.  Also, once @code{PIPE_BUF} characters have been written,
+further writes will block until some characters are read.
 
 @xref{Limits for Files}, for information about the @code{PIPE_BUF}
 parameter.