(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},
 
 @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
 
 @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.
 
 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.
 
 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
 
 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
 @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
 @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
 
 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.
 
 @xref{Limits for Files}, for information about the @code{PIPE_BUF}
 parameter.