Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > F


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


ferror(), feof(), clearerr(), ferror_unlocked(), feof_unlocked(), clearerr_unlocked() — stream status inquiries


#include <stdio.h>

int ferror(FILE *stream);

int feof(FILE *stream);

void clearerr(FILE *stream);

Obsolescent Interfaces

int ferror_unlocked(FILE *stream);

int feof_unlocked(FILE *stream);

void clearerr_unlocked(FILE *stream);



Returns nonzero when an I/O error has previously occurred reading from or writing to the named stream, otherwise zero. Unless cleared by clearerr(), or unless the specific stdio routine so indicates, the error indication lasts until the stream is closed.


Returns nonzero when EOF has previously been detected reading the named input stream, otherwise zero.


Resets the error indicator and EOF indicator on the named stream to zero.

Obsolescent Interfaces

ferror_unlocked(), feof_unlocked(), and clearerr_unlocked() stream status inquiries.


All these routines are implemented both as library functions and as macros. The macro versions, which are used by default, are defined in <stdio.h>. To obtain the library function, either use a #undef to remove the macro definition or, if compiling in ANSI-C mode, enclose the function name in parentheses or use the function address. The following example illustrates each of these methods :

#include <stdio.h> #undef ferror ... main() { int (*find_error()) (); ... return_val=ferror(fd); ... return_val=(feof)(fd1); ... find_error = feof; };

Reentrant Interfaces

If _REENTRANT is defined before including <stdio.h>, the locked versions of the library functions for ferror(), feof(), and clearerr() are used by default.

ferror_unlocked(), feof_unlocked(), and clearerr_unlocked() are obsolescent interfaces supported only for compatibility with existing DCE applications. New multithreaded applications should use ferror(), feof() and clearerr().


ferror(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

clearerr(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

feof(): AES, SVID2, SVID3, XPG2, XPG3, XPG4, FIPS 151-2, POSIX.1, ANSI C

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.