REWIND |
Rembobiné |
---|---|
Langage C++ | cstdio (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 permet de ramener le pointeur de fichier au début de ce fichier.
Remarques
- La fonction rewind() déplace l'indicateur de position du fichier au début du flux de données spécifié. Il efface également les indicateurs de fin de fichier et d'erreur associés au flux de données.
- La fonction rewind() n'a aucune valeur de retour.
- Définition et utilité : La fonction rewind est définie dans la bibliothèque <cstdio> (ou <stdio.h>) et permet de repositionner le pointeur de fichier au début d'un fichier ouvert en mode lecture ou écriture. Elle est utile pour revenir au début d'un fichier sans avoir besoin de fermer et de rouvrir le fichier, ce qui permet de réutiliser le même fichier après une opération précédente.
- Repositionnement du pointeur de fichier : rewind réinitialise la position du pointeur de fichier à zéro, c'est-à-dire au début du fichier. Cela permet de relire ou d'écrire depuis le début sans avoir à rouvrir le fichier ou à effectuer des opérations manuelles complexes pour ajuster la position du curseur. Exemple :
- Réinitialisation des erreurs et du flux : En plus de repositionner le pointeur de fichier, la fonction rewind réinitialise également l'état d'erreur et de fin de fichier du flux ptrfichier. Cela signifie que les indicateurs d'erreur et de fin de fichier (feof, ferror) sont effacés après l'appel à rewind. Exemple :
- Portabilité et comportement : rewind est largement supportée sur les systèmes Unix et Windows, car elle fait partie de la norme C et est incluse dans les bibliothèques C++ standard. Cependant, son comportement dépend de la manière dont le système de fichiers gère les pointeurs de fichiers et les tampons internes. Par exemple, si le fichier est volumineux et que les données ont été mises en cache, la réinitialisation du pointeur peut ne pas se traduire immédiatement par un déplacement physique du curseur dans le fichier, mais plutôt par une réinitialisation des indices internes.
- Limitation avec les fichiers binaires : Bien que rewind fonctionne parfaitement avec des fichiers texte, il peut ne pas être aussi utile avec des fichiers binaires si vous avez effectué des écritures dans le fichier. Après avoir utilisé rewind, si vous effectuez une nouvelle lecture, le comportement peut être imprévisible si les données ont été mises en cache ou si le fichier a subi des écritures précédentes. Dans ce cas, il est préférable d'utiliser explicitement fseek pour un contrôle plus précis de la position du curseur.
- Repositionnement pour les fichiers ouverts en mode binaire : rewind fonctionne également avec des fichiers ouverts en mode binaire, mais il est important de noter que la gestion du flux binaire peut différer de la gestion d'un fichier texte, notamment en ce qui concerne la mise en cache ou la tamporisation. Par conséquent, bien que rewind positionne le pointeur au début du fichier, les fichiers binaires peuvent nécessiter une attention particulière sur la gestion des tampons et de la synchronisation du flux.
- Alternatives à rewind : Si vous avez besoin de plus de flexibilité ou de contrôle sur la position du pointeur de fichier, vous pouvez utiliser fseek à la place de rewind. La fonction fseek permet de positionner le pointeur à une position donnée dans le fichier (en spécifiant un offset et un point de référence), ce qui est plus utile lorsque vous voulez repositionner le curseur à un endroit précis du fichier plutôt que simplement au début. Exemple avec fseek :
- fseek(file, 0, SEEK_SET); // Revenir au début du fichier
Exemple
Voici un exemple permettant de réécrire au même emplacement dans un fichier :

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 : Lundi, le 3 août 2015