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);
}