Прототип функции 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
отлавливает эту ошибку.