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);
}
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 时发生错误other extensions