COHERENT manpages
This page displays the COHERENT manpage for ferror() [Discover stream status].
List of available manpages
Index
ferror() -- STDIO Function (libc) Discover stream status #include <stdio.h> int ferror(fp) FILE *fp; ferror() tests the status of the file stream fp. It returns a number other than zero if an error has occurred on fp. Any error condition that it discovers persists until you either close the stream or call clearerr() to clear it. For write routines that employ buffers, call fflush() before you call ferror(), in case an error occurs on the last block written. Example This example reads a word from one file and writes it into another. #include <stdio.h> main() { FILE *fpin, *fpout; int inerr = 0; int outerr = 0; int word; char infile[20], outfile[20]; printf("Name data file you wish to copy:\n"); gets(infile); printf("Name new file:\n"); gets(outfile); if ((fpin = fopen(infile, "r")) != NULL) { if ((fpout = fopen(outfile, "w")) != NULL) { for (;;) { word = fgetw(fpin); if (ferror(fpin)) { clearerr(fpin); inerr++; } if (feof(fpin)) break; fputw(word, fpout); if (ferror(fpout)) { clearerr(fpout); outerr++; } } } else { printf ("Cannot open output file %s\n", outfile); exit(1); } } else { printf("Cannot open input file %s\n", infile); exit(1); } printf("%d - read error(s) %d - write error(s)\n", inerr, outerr); exit(0); } See Also libc ANSI Standard, §7.9.10.3 POSIX Standard, §8.1