clearerr ()- 重置错误指示符

格式

#include <stdio.h>
void clearerr (FILE *stream);

语言级别

ANSI

线程安全

描述

clearerr() 函数会重置指定 的错误指示符和文件结束指示符。 设置后,指定流的指示符将保持设置状态,直到程序调用 clearerr() 函数或 rewind() 函数为止。 fseek() 函数还会清除文件结束指示符。 ILE C/C++ 运行时环境不会自动清除错误或文件指示符结束。

返回值

没有返回值。

errno 的值可以设置为:
含义
EBADF
文件指针或描述符无效。
ENOTOPEN
文件未打开。
埃斯特丁
无法打开 stdin
EIOERROR
发生了不可恢复的I/O错误。
EIORECERR
发生了可恢复的I/O错误。

示例

此示例读取数据流,然后检查是否未发生读错误。
#include <stdio.h>
#include <stdlib.h>
 
FILE *stream;
int c;
 
int main(void)
{
   if ((stream = fopen("mylib/myfile", "r")) != NULL)
   {
      if ((c=getc(stream)) == EOF)
      {
         if (ferror(stream))
         {
            perror("Read error");
            clearerr(stream);
         }
      }
   }
   else
      exit(0);
}

相关信息