GNU Info

Info Node: (libc.info)EOF and Errors

(libc.info)EOF and Errors


Next: Error Recovery Prev: Formatted Input Up: I/O on Streams
Enter node , (file) or (file)node

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 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 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)
     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)
     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)
     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)
     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 Note: Low-Level I/O.


automatically generated by info2www version 1.2.2.9