(libc.info.gz) EOF and Errors

Info Catalog (libc.info.gz) Formatted Input (libc.info.gz) I/O on Streams (libc.info.gz) Error Recovery
 
 12.15 End-Of-File and Errors
 ============================
 
 Many of the functions described in this chapter return the value of the
 macro 'EOF' to indicate unsuccessful completion of the operation.  Since
 'EOF' is used to report both end of file and random errors, it's often
 better to use the 'feof' function to check explicitly for end of file
 and 'ferror' to check for errors.  These functions check indicators that
 are part of the internal state of the stream object, indicators set if
 the appropriate condition was detected by a previous I/O operation on
 that stream.
 
  -- Macro: int EOF
      This macro is an integer value that is returned by a number of
      narrow stream functions to indicate an end-of-file condition, or
      some other error situation.  With the GNU C Library, 'EOF' is '-1'.
      In other libraries, its value may be some other negative number.
 
      This symbol is declared in 'stdio.h'.
 
  -- Macro: int WEOF
      This macro is an integer value that is returned by a number of wide
      stream functions to indicate an end-of-file condition, or some
      other error situation.  With the GNU C Library, 'WEOF' is '-1'.  In
      other libraries, its value may be some other negative number.
 
      This symbol is declared in 'wchar.h'.
 
  -- Function: int feof (FILE *STREAM)
      Preliminary: | MT-Safe | AS-Safe | AC-Unsafe lock |  POSIX
      Safety Concepts.
 
      The 'feof' function returns nonzero if and only if the end-of-file
      indicator for the stream STREAM is set.
 
      This symbol is declared in 'stdio.h'.
 
  -- Function: int feof_unlocked (FILE *STREAM)
      Preliminary: | MT-Safe | AS-Safe | AC-Safe |  POSIX Safety
      Concepts.
 
      The 'feof_unlocked' function is equivalent to the 'feof' function
      except that it does not implicitly lock the stream.
 
      This function is a GNU extension.
 
      This symbol is declared in 'stdio.h'.
 
  -- Function: int ferror (FILE *STREAM)
      Preliminary: | MT-Safe | AS-Safe | AC-Unsafe lock |  POSIX
      Safety Concepts.
 
      The 'ferror' function returns nonzero if and only if the error
      indicator for the stream STREAM is set, indicating that an error
      has occurred on a previous operation on the stream.
 
      This symbol is declared in 'stdio.h'.
 
  -- Function: int ferror_unlocked (FILE *STREAM)
      Preliminary: | MT-Safe | AS-Safe | AC-Safe |  POSIX Safety
      Concepts.
 
      The 'ferror_unlocked' function is equivalent to the 'ferror'
      function except that it does not implicitly lock the stream.
 
      This function is a GNU extension.
 
      This symbol is declared in 'stdio.h'.
 
    In addition to setting the error indicator associated with the
 stream, the functions that operate on streams also set 'errno' in the
 same way as the corresponding low-level functions that operate on file
 descriptors.  For example, all of the functions that perform output to a
 stream--such as 'fputc', 'printf', and 'fflush'--are implemented in
 terms of 'write', and all of the 'errno' error conditions defined for
 'write' are meaningful for these functions.  For more information about
 the descriptor-level I/O functions, see  Low-Level I/O.
 
Info Catalog (libc.info.gz) Formatted Input (libc.info.gz) I/O on Streams (libc.info.gz) Error Recovery
automatically generated by info2html