clearerr_s
Reimposta l'indicatore di errore per un flusso. Questa funzione è una versione di con miglioramenti della clearerr
sicurezza, come descritto in Funzionalità di sicurezza in CRT.
Sintassi
errno_t clearerr_s(
FILE *stream
);
Parametri
stream
Puntatore alla struttura FILE
Valore restituito
Zero se ha esito positivo; EINVAL
se stream
è NULL
.
Osservazioni:
La funzione clearerr_s
reimposta l'indicatore di errore e l'indicatore di fine del file per stream
. Gli indicatori di errore non vengono cancellati automaticamente; dopo aver impostato l'indicatore di errore per un flusso specificato, le operazioni su tale flusso continuano a restituire un valore di errore finché clearerr_s
non viene chiamato , clearerr
fseek
, fsetpos
, o rewind
.
Se stream
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione imposta errno
suEINVAL
e restituisce EINVAL
.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione obbligatoria |
---|---|
clearerr_s |
<stdio.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// 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();
}
}
}
Input
n
Output
Write error: Bad file descriptor
Will input cause an error? n
Vedi anche
Gestione errori
I/O di flusso
clearerr
_eof
feof
ferror
perror
, _wperror