clearerr_s
Сбрасывает индикатор ошибки для потока. Эта функция представляет собой версию улучшений clearerr
безопасности, как описано в функциях безопасности в CRT.
Синтаксис
errno_t clearerr_s(
FILE *stream
);
Параметры
stream
Указатель на структуру FILE
Возвращаемое значение
Ноль при успешном выполнении; EINVAL
NULL
Значение stream
if .
Замечания
Функция clearerr_s
сбрасывает индикатор ошибки и индикатор конечного файла для stream
. Индикаторы ошибок не очищаются автоматически; После установки индикатора ошибки для указанного потока операции с этим потоком продолжают возвращать значение ошибки, пока clearerr_s
, , clearerr
fseek
fsetpos
или rewind
вызывается.
В противном stream
NULL
случае вызывается недопустимый обработчик параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, эта функция задает для errno
значение EINVAL
и возвращает EINVAL
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
clearerr_s |
<stdio.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_clearerr_s.c
// This program creates an error
// on the standard input stream, then clears
// it so that future reads won't fail.
#include <stdio.h>
int main( void )
{
int c;
errno_t err;
// Create an error by writing to standard input.
putc( 'c', stdin );
if( ferror( stdin ) )
{
perror( "Write error" );
err = clearerr_s( stdin );
if (err != 0)
{
abort();
}
}
// See if read causes an error.
printf( "Will input cause an error? " );
c = getc( stdin );
if( ferror( stdin ) )
{
perror( "Read error" );
err = clearerr_s( stdin );
if (err != 0)
{
abort();
}
}
}
Входные данные
n
Выходные данные
Write error: Bad file descriptor
Will input cause an error? n
См. также
Обработка ошибок
Потоковый ввод-вывод
clearerr
_eof
feof
ferror
perror
, _wperror