Функции библиотеки C -clearerr()
Стандартная библиотека C - <stdio.h>
Описание
Функции библиотеки Cvoid clearerr(FILE *stream)Очищает индикаторы конца файла и ошибок для заданного потока.
Объявление
Ниже приведено объявление функции clearerr().
void clearerr(FILE *stream)
Параметр
- stream-- Это указатель на объект FILE, который идентифицирует поток.
Возвращаемое значение
Это не вызывает сбоя и не устанавливает внешнюю переменную errno, но если она обнаруживает, что её аргумент не является допустимым потоком, она возвращает -1 и устанавливает errno в EBADF.
Пример
Следующий пример демонстрирует использование функции clearerr().
Пример
#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);
}
Предположим, у нас есть текстовый файлfile.txt, который является пустым файлом. Давайте скомпилируем и запустим вышеуказанную программу. Поскольку мы пытаемся прочитать файл, открытый в режиме только для записи, это даст следующий результат.
读取文件:file.txt 时发生错误Другие расширения