ferror

From cppreference.com
< c‎ | io
Defined in header <stdio.h>
int ferror( FILE *stream );

Checks the given stream for errors.

Contents

[edit] Parameters

stream - the file stream to check

[edit] Return value

nonzero value if the file stream has errors occurred, 0 otherwise

[edit] Example

ferror used in error checking

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
    FILE* tmpf = tmpfile();
    fputs("abcde\n", tmpf); 
    rewind(tmpf);
 
    int ch;
    while ((ch=fgetc(tmpf)) != EOF)   /* read/print characters including newline */
          printf("%c", ch);
 
    /* Test reason for reaching EOF. */
    if (feof(tmpf))          /* if failure caused by end-of-file condition */
       puts("End of file reached successfully");
    else if (ferror(tmpf))   /* if failure caused by some other error      */
         {
            perror("fgetc()");
            fprintf(stderr,"fgetc() failed in file %s at line # %d\n", __FILE__,__LINE__-9);
            exit(EXIT_FAILURE);
         }
 
    return EXIT_SUCCESS;
}

Output:

abcde
End of file reached successfully

[edit] See also

clears errors
(function)
checks for the end-of-file
(function)
displays a character string corresponding of the current error to stderr
(function)
C++ documentation for ferror