ferror
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | 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
Run this code
#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 | |


