Поделиться через


clearerr_s

Сбрасывает индикатор ошибки для потока. Эта функция представляет собой версию улучшений clearerr безопасности, как описано в функциях безопасности в CRT.

Синтаксис

errno_t clearerr_s(
   FILE *stream
);

Параметры

stream
Указатель на структуру FILE

Возвращаемое значение

Ноль при успешном выполнении; EINVALNULLЗначение stream if .

Замечания

Функция clearerr_s сбрасывает индикатор ошибки и индикатор конечного файла для stream. Индикаторы ошибок не очищаются автоматически; После установки индикатора ошибки для указанного потока операции с этим потоком продолжают возвращать значение ошибки, пока clearerr_s, , clearerrfseekfsetposили rewind вызывается.

В противном streamNULLслучае вызывается недопустимый обработчик параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, эта функция задает для 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