Compartilhar via


clearerr_s

Redefine o indicador de erro para um fluxo. Essa função é uma versão do com aprimoramentos de clearerr segurança, conforme descrito em Recursos de segurança no CRT.

Sintaxe

errno_t clearerr_s(
   FILE *stream
);

Parâmetros

stream
Ponteiro para a estrutura FILE

Valor retornado

Zero se for bem-sucedido; EINVAL se stream é NULL.

Comentários

A função clearerr_s redefine o indicador de erro e o indicador de final de arquivo como stream. Os indicadores de erro não são apagados automaticamente; Depois que o indicador de erro para um fluxo especificado é definido, as operações nesse fluxo continuam a retornar um valor de erro até clearerr_sque , clearerr, fseek, fsetpos, ou rewind seja chamado.

Se stream for NULL, o manipulador de parâmetro inválido será chamado, conforme descrito em Validação de parâmetro. Se a execução puder continuar, essa função definirá errno para EINVAL e retornará EINVAL.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, confira Estado global no CRT.

Requisitos

Rotina Cabeçalho necessário
clearerr_s <stdio.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

// 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();
      }
   }
}

Entrada

n

Saída

Write error: Bad file descriptor
Will input cause an error? n

Confira também

Tratamento de erros
E/S de fluxo
clearerr
_eof
feof
ferror
perror, _wperror