Ferror c: The function int ferror(FILE *stream); checks the status of error indicator associated with the given stream. To get the exact nature of the error, we should use perror function. A call to clearerr, freopen or rewind clears the error indicator.
Function prototype of ferror
int ferror(FILE *stream);
- stream : A pointer to a FILE object which identifies a stream.
Return value of ferror
This function returns zero if no error has occurred, otherwise a non-zero value in case of an error.
C program using ferror function
The following program shows the use of ferror function to handle I/O errors. Let us assume we have an empty file called “textFile.txt”. Below program opens “textFile.txt” in read-only mode but tries to write a character in it, which causes an error that is detected by ferror function.

#include <stdio.h>
int main(){
FILE *file;
char ch;
/* Opening an empty text file in read only mode*/
file = fopen("textFile.txt", "r");
/* It will causes an I/O error trying to write on it */
fputc('A', file);
if(ferror(file))
{
printf("Error: writing in a read only file\n");
/*Clearing error indicators */
clearerr (file);
}
fclose(file);
return(0);
}
Output
Error: writing in a read only file