Прототип функции ferror:
int ferror( FILE * filestream );
Заголовочный файл
| Название | Язык |
|---|---|
| stdio.h | С |
| cstdio | С++ |
Описание
Функция ferror отслеживает появление ошибки, связанной с потоком, который передаётся через параметр filestream. Если ошибка была обнаружена, возвращается значение, отличное от нуля.
Эту функцию целесообразно вызывать после выполнения предыдущей операции с потоком. Таким образом. если предыдущая операция выполнится с ошибкой, функция ferror проинформирует об этом.
Параметры:
- filestream
Указатель на объект типаFILE, идентифицируемый поток.
Возвращаемое значение
Если возникла ошибка, связанная с потоком, функция возвращает ненулевое значение.
В противном случае возвращается нулевое значение.
Пример: исходный код программы
//пример использования ferror
#include <cstdio>
int main()
{
FILE * ptrFile = fopen("file.txt","r");
if (ptrFile == NULL) perror("Ошибка открытия файла");
else
{
fputc('x', ptrFile); // записать в файл file.txt символ 'x'
if ( ferror(ptrFile) ) // если произошла ошибка
puts("Ошибка записи файла file.txt");
fclose (ptrFile); //закрыть файл
}
return 0;
}
Пример работы программы
Эта программа открывает существующий текстовый файл file.txt в режиме, только для чтения, и при этом, программа пытается записать в файл символ. При попытке записи в файл. открытый в режиме — только для чтения, генерируется ошибка, а функция ferror отлавливает эту ошибку.