REWIND |
Rembobiné |
---|---|
Langage C | stdio.h |
Syntaxe
void rewind(FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction ramène le pointeur de fichier au début de ce fichier.
Algorithme
MODULE REWIND(stream) SI stream est NULL ALORS * Erreur : le pointeur de fichier est invalide RETOURNE ERROR_INVALID_STREAM FIN SI * Réinitialiser le pointeur de fichier à la position de début result ← set_file_position(stream, position=0) SI result est SUCCESS ALORS * Effacer les indicateurs d'erreur et d'EOF associés clear_error_and_eof_flags(stream) RETOURNE 0 SINON * Erreur : impossible de repositionner le fichier RETOURNE ERROR_SEEK_FAILED FIN SI |
Remarques
- Effacement des indicateurs d'erreur : En plus de repositionner le curseur, rewind réinitialise les indicateurs d'erreur et de fin de fichier associés au flux de données. Cela signifie que toute erreur ou EOF détectée lors d'opérations précédentes n'affectera pas les opérations suivantes.
- Pas de retour de valeur : Contrairement à d'autres fonctions de manipulation de fichiers comme fseek, rewind ne retourne pas de valeur. Elle ne fournit donc pas d'indication directe sur le succès ou l'échec de l'opération, bien qu'elle ne faille pas dans des conditions normales.
- Différence avec fseek : Bien que rewind soit fonctionnellement similaire à fseek(stream, 0, SEEK_SET), elle offre une simplification importante : elle ne nécessite pas de spécifier la position ou l'origine. De plus, rewind est souvent préférée pour sa lisibilité dans les cas où le but est uniquement de revenir au début du fichier.
- Utilisation limitée aux fichiers ouverts : La fonction rewind ne peut être utilisée que sur des fichiers ouverts en mode de lecture, écriture ou les deux. Tenter de l'utiliser sur un flux fermé ou non initialisé peut entraîner un comportement indéfini, souvent une erreur d'exécution.
- Applications pratiques : Elle est couramment utilisée dans les programmes où les fichiers doivent être lus plusieurs fois. Par exemple, lors de l'analyse de fichiers de données ou de journaux de bord, rewind permet d'éviter une réouverture coûteuse et simplifie le flux d'exécution.
- Compatibilité et portabilité : rewind est conforme à la norme ISO C, garantissant une large compatibilité entre différents systèmes. Elle est implémentée de manière fiable sur toutes les plateformes supportant les fonctions standard de manipulation de fichiers.
- Limites et précautions : Même si elle est pratique, rewind ne permet pas de positionner le curseur à une position arbitraire dans le fichier. Pour un contrôle plus fin, comme le déplacement vers un endroit spécifique, fseek est plus adaptée. De plus, l'utilisation sur des fichiers ouverts en mode d'écriture peut entraîner une perte de données si elles n'ont pas été correctement vidées avant l'appel à rewind.
Exemple
Voici un exemple permettant de réécrire au même emplacement dans un fichier :
Essayer maintenant !
on obtiendra le résultat suivant dans le fichier «monfichier.txt» :
gladir.comVoir également
Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fseek
Langage de programmation - C - Référence de procédures et fonctions - ftell
Langage de programmation - C++ - Référence de procédures et fonctions - rewind
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 211.
Dernière mise à jour : Mardi, le 28 juillet 2015