(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 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 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