ferror
From cppreference.net
File input/output
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовочном файле
<stdio.h>
|
||
|
int
ferror
(
FILE
*
stream
)
;
|
||
Проверяет заданный поток на наличие ошибок.
Содержание |
Параметры
| stream | - | файловый поток для проверки |
Возвращаемое значение
Ненулевое значение, если в файловом потоке произошли ошибки, 0 в противном случае
Пример
Запустить этот код
#include <stdio.h> #include <stdlib.h> #include <locale.h> #include <wchar.h> int main(void) { char* fname = tmpnam(NULL); FILE* f = fopen(fname, "wb"); fputs("\xff\xff\n", f); // недопустимая последовательность символов UTF-8 fclose(f); setlocale(LC_ALL, "en_US.utf8"); f = fopen(fname, "rb"); wint_t ch; while ((ch=fgetwc(f)) != WEOF) // попытка чтения как UTF-8 завершается неудачей printf("%#x ", ch); if (feof(f)) puts("EOF indicator set"); if (ferror(f)) puts("Error indicator set"); }
Вывод:
Error indicator set
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.21.10.3 Функция ferror (стр. 339)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.19.10.3 Функция ferror (стр. 305)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
-
- 4.9.10.3 Функция ferror
Смотрите также
|
очищает ошибки
(функция) |
|
|
проверяет достижение конца файла
(функция) |
|
|
Документация C++
для
ferror
|
|