I have forgotten
my Password

Or login with:

  • Facebookhttp://facebook.com/
  • Googlehttps://www.google.com/accounts/o8/id
  • Yahoohttps://me.yahoo.com


Check and reset stream status
+ View other versions (3)


#include <stdio.h>
void clearerr (FILE *stream)
void clearerr_unlocked (FILE *stream)
int feof (FILE *stream)
int feof_unlocked (FILE *stream)
int ferror (FILE *stream)
int ferror_unlocked (FILE *stream)
int fileno (FILE *stream)
int fileno_unlocked (FILE *stream)


The function clearerr clears the end-of-file and error indicators for the stream pointed to by stream.

The function feof tests the end-of-file indicator for the stream pointed to by stream, returning non-zero if it is set. The end-of-file indicator can only be cleared by the function clearerr .

The function ferror tests the error indicator for the stream pointed to by stream, returning non-zero if it is set. The error indicator can only be reset by the clearerr function.

The function fileno examines the argument stream and returns its integer descriptor.

The clearerr_unlocked, feof_unlocked, ferror_unlocked and fileno_unlocked functions are equivalent to clearerr, feof, ferror and fileno respectively, except that the caller is responsible for locking the stream with flockfile before calling them. These functions may be used to avoid the overhead of locking the stream and to prevent races when multiple threads are operating on the same stream.

The code below attempts to open the text file "fred.txt" in the current directory and read each character in it until the EOF symbol is encountered. The feof function has been used to test for EOF.

Example - Check and reset stream status
#include <stdio.h>
int main()
  FILE *in;
  if (in = fopen("fred.txt", "rt"))
    for (char c; !feof(in); fscanf(in, "%c", &c));
  return 0;


These functions should not fail and do not set the external variable errno.