C Library Functions -clearerr()

C Standard Library - <stdio.h>

Description

C Library Functionsvoid clearerr(FILE *stream)Clear the end-of-file and error indicators for the given stream.

Declaration

Below is the declaration of the clearerr() function.

void clearerr(FILE *stream)

Parameter

  • stream-- This is a pointer to a FILE object that identifies the stream.

Return Value

This does not fail and does not set the external variable errno, but if it detects that its argument is not a valid stream, it returns -1 and sets errno to EBADF.

Example

The following example demonstrates the usage of the clearerr() function.

Example

#include <stdio.h>

int main()
{
   FILE *fp;
   char c;

   fp = fopen("file.txt", "w");

   c = fgetc(fp);
   if( ferror(fp) )
   {
      printf("Error reading file: file.txt\n");
   }
   clearerr(fp);
   if( ferror(fp) )
   {
      printf("Error reading file: file.txt\n");
   }
   fclose(fp);

   return(0);
}

Suppose we have a text filefile.txt, which is an empty file. Let us compile and run the above program. Because we attempt to read a file opened in write-only mode, this will produce the following result.

读取文件:file.txt 时发生错误

C Standard Library - <stdio.h>

other extensions