6.18.13 ferror Function
Tests if error indicator is set.
Attention: This function is not implemented
by MPLAB XC8 for PIC MCUs. It is implemented by all other compilers, but MPLAB XC8 for
AVR MCUs has limited support of data streams.
Include
<stdio.h>
Prototype
int ferror(FILE * stream);
Argument
stream
- pointer to
FILE
structure
Return Value
Returns a non-zero value if error indicator is set; otherwise, returns a zero.
Example
See the notes at the beginning of this chapter or section for
information on using printf()
or scanf()
(and other functions reading and writing the stdin
or
stdout
streams) in the example code.
/* This program tries to write to a file that is */
/* readonly. This causes the error indicator to */
/* be set. The function ferror is used to check */
/* the error indicator and find the error. The */
/* function clearerr is used to reset the error */
/* indicator so the next time ferror is called */
/* it will not report an error. */
#include <stdio.h>
int main(void)
{
FILE *myfile;
if ((myfile = fopen("sampclearerr.c", "r")) == NULL)
printf("Cannot open file\n");
else
{
fprintf(myfile, "Write this line to the file.\n");
if (ferror(myfile))
printf("Error\n");
else
printf("No error\n");
clearerr(myfile);
if (ferror(myfile))
printf("Still has Error\n");
else
printf("Error indicator reset\n");
fclose(myfile);
}
}
Example Output
Error
Error indicator reset