FGETPOS |
Demande la position dans le fichier |
---|---|
Langage C | stdio.h |
Syntaxe
int fgetpos(FILE *ptrfichier,fpos_t *pos) |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
pos | Ce paramètre permet d'indiquer la position dans le fichier |
Description
Cette fonction demande la position du pointeur dans un fichier.
Algorithme
MODULE fgetpos(stream, pos) SI stream est invalide ALORS RETOURNE error_code * Le flux est invalide FIN SI current_position ← demande la position actuelle dans le flux SI il y a eu une erreur lors de la récupération de la position ALORS * Erreur lors de l'obtention de la position RETOURNE error_code FIN SI pos↑ ← current_position * Position obtenue avec succès RETOURNE 0 |
Remarques
- Sauvegarde de la position dans le fichier : La fonction fgetpos permet de capturer la position courante dans un flux de fichier. Cette position est entreposée dans une variable de type fpos_t, ce qui est particulièrement utile pour naviguer dans un fichier sans perdre l'endroit où le traitement en cours s'est arrêté.
- Usage avec fsetpos pour revenir à une position : En combinaison avec fsetpos, fgetpos permet de revenir à une position sauvegardée. Cela facilite les manipulations avancées, comme la lecture conditionnelle ou la réutilisation de blocs spécifiques dans des fichiers volumineux.
- Portabilité accrue grâce à fpos_t : Contrairement à ftell, retournant un long, fgetpos utilise un type abstrait fpos_t. Cela améliore la portabilité sur des plateformes où les positions de fichiers peuvent ne pas être représentables comme des entiers longs, en particulier pour des fichiers très volumineux.
- Gestion des flux en texte et en binaire : fgetpos fonctionne à la fois pour les fichiers texte et les fichiers binaires. Cependant, pour les fichiers texte, la position capturée peut ne pas être représentée de manière linéaire en raison des traductions spécifiques à la plateforme (comme la gestion des retours à la ligne).
- Vérification de la réussite avec la valeur de retour : fgetpos retourne 0 en cas de succès et une valeur non nulle si une erreur se produit. Il est essentiel de vérifier la valeur de retour pour s'assurer que la position a été correctement enregistrée, surtout si le fichier est dans un état inconnu.
- Impact sur les performances : Bien que fgetpos soit très pratique, il peut introduire une certaine surcharge dans des applications nécessitant de fréquentes captures de position, surtout sur des fichiers volumineux. Son utilisation doit être planifiée pour équilibrer la flexibilité et les performances.
- Applications pratiques : fgetpos est couramment utilisée dans des programmes qui nécessitent des sauvegardes temporaires de position pour des reprises ou des vérifications ultérieures. Par exemple, dans les analyseurs ou les éditeurs de fichiers, elle permet de revenir à des endroits précis après avoir effectué des tests ou des analyses conditionnelles.
Exemple
Prenons pour acquis que le fichier «gladir.txt» est le contenu :
gladir.comVoici un exemple montrant une utilisation plus classique de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
g, position=0l, position=1
a, position=2
d, position=3
i, position=4
r, position=5
., position=6
c, position=7
o, position=8
m, position=9
Voir également
Langage de programmation - C - Référence procédures et fonctions - fseek
Langage de programmation - C - Référence procédures et fonctions - fsetpos
Langage de programmation - C - Référence procédures et fonctions - ftell
Langage de programmation - C++ - Référence procédures et fonctions - fgetpos
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 99.
Dernière mise à jour : Mardi, le 28 juillet 2015