Copyright (C) 2000-2012 |
GNU Info (libc.info)EOF and ErrorsEnd-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 |