#include <stdio.h> // <cstdio> en C++
void clearerr( FILE * stream );
Cette fonction permet de remettre à zéro l'indicateur d'erreur pour le flux de caractères considéré. Pour rappel, vous
pouvez connaitre le statut d'erreur associé à un flux par le biais de la fonction ferror
.
L'exemple ci-dessous déclenche une erreur (une tentative d'écriture est réalisée sur un flux ouvert en lecture uniquement). Du coup, le statut d'erreur est levé pour le flux considéré. Il est alors possible de le remettre à zéro.
#include <errno.h> #include <stdio.h> #include <stdlib.h> int main( int argc, char * argv[] ) { FILE * myFile = fopen( "anExistingFile", "r" ); int rc = fputc( '!', myFile ); printf( "Results == %d %d\n", ferror( myFile ), errno ); clearerr( myFile ); printf( "Results == %d %d\n", ferror( myFile ), errno ); rc = fclose( myFile ); return 0; }
Le résutat produit par l'exécution de ce programme est le suivant :
$> sample Results == 1 9 Results == 0 9 $>
Notez bien que la variable errno
n'a pas était impactée. Seul l'indicateur d'erreur
associé au fichier manipulé est réinitialisé !
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :