ferror
Определено в заголовке <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); // not a valid UTF-8 character sequence
fclose(f);
setlocale(LC_ALL, "en_US.utf8");
f = fopen(fname, "rb");
wint_t ch;
while ((ch=fgetwc(f)) != WEOF) // attempt to read as UTF-8 fails
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 |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io/ferror