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_s
que , 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