| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <stdio.h> | ||
int ferror(FILE*stream); | ||
Checks the given stream for errors.
Contents |
| stream | - | the file stream to check |
Nonzero value if the file stream has errors occurred,0 otherwise
#include <stdio.h>#include <stdlib.h>#include <locale.h>#include <wchar.h> int main(void){char* fname=tmpnam(NULL);FILE* f=fopen(fname,"wb");fputs("\xff\xff\n", f);// not a valid UTF-8 character sequencefclose(f); setlocale(LC_ALL,"en_US.utf8"); f=fopen(fname,"rb"); wint_t ch;while((ch=fgetwc(f))!= WEOF)// attempt to read as UTF-8 failsprintf("%#x ", ch); if(feof(f))puts("EOF indicator set");if(ferror(f))puts("Error indicator set");}
Output:
Error indicator set