ferror
From cppreference.com
C
Concurrency support (C11)
File input/output
Types and objects
Functions
File access
Unformatted input/output
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)
(C95)
(C95)
Formatted input
(C11)(C11)(C11)
(C95)(C95)(C95)(C11)(C11)(C11)
(C99)(C99)(C99)(C11)(C11)(C11)
(C99)(C99)(C99)(C11)(C11)(C11)
Direct input/output
Formatted output
(C99)(C11)(C11)(C11)(C11)
(C95)(C95)(C95)(C11)(C11)(C11)(C11)
(C99)(C11)(C11)(C11)(C11)
(C95)(C95)(C95)(C11)(C11)(C11)(C11)
File positioning
Error handling
Operations on files
(C11)
(C11)
Defined in header
<stdio.h>
int ferror( FILE *stream );
Checks the given stream for errors.
[edit] Parameters
stream
-
the file stream to check
[edit] Return value
Nonzero value if the file stream has errors occurred, 0 otherwise
[edit] Example
Run this code
#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 sequence fclose (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 fails printf ("%#x ", ch); if (feof (f)) puts ("EOF indicator set"); if (ferror(f)) puts ("Error indicator set"); }
Output:
Error indicator set
[edit] References
- C11 standard (ISO/IEC 9899:2011):
- 7.21.10.3 The ferror function (p: 339)