FFLUSH |
Vide le fichier |
---|---|
Langage C | stdio.h |
Syntaxe
int fflush(FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction permet de vider le tampon du fichier.
Algorithme
MODULE fflush(stream) SI stream est NULL ALORS BOUCLE POUR CHAQUE ouvrir le flux de sortie stream FAIRE SI il y a des données dans le tampon de sortie ALORS Écrire les données mises en mémoire tampon vers la destination FIN SI FIN BOUCLE POUR CHAQUE * Tous les tampons vidés avec succès RETOURNE 0 SINON SI il y a des données dans le tampon de sortie du flux stream ALORS Écrire les données mises en mémoire tampon vers la destination * Tampon du flux vidé avec succès RETOURNE 0 SINON * Erreur ou tampon déjà vide RETOURNE EOF FIN SI FIN SI |
Remarques
- Vider le tampon de sortie : La fonction fflush est utilisée pour vider le tampon de sortie d'un flux de données. Cela signifie que tous les données en attente d'être écrites dans le flux, mais n'ayant pas encore été transmises (c'est-à-dire étant dans le tampon), sont effectivement envoyées à la destination (par exemple, un fichier ou un terminal). Cela est particulièrement utile lorsqu'un programme écrit fréquemment dans un fichier ou sur la sortie standard et que l'on veut s'assurer que les données sont réellement écrites immédiatement.
- Comportement sur différents flux : fflush peut être appliqué à des flux sortants comme stdout ou des flux de fichiers ouverts en mode écriture. Cependant, il ne doit pas être utilisé sur des flux en mode lecture, car son comportement dans ce cas est indéfini et pourrait entraîner des erreurs.
- Effet sur la sortie standard : Dans le cas des sorties standard (comme la console), fflush(stdout) peut être utilisé pour forcer l'affichage immédiat des données tamponnées. Cela est particulièrement utile pour des applications interactives ou lorsque l'on veut s'assurer que les données apparaissent à l'utilisateur en temps réel, sans attendre la fin du programme ou la fermeture du flux.
- Utilisation dans les programmes interactifs : Pour les programmes qui interagissent avec l'utilisateur, comme ceux qui demandent des entrées et fournissent des sorties, l'utilisation de fflush(stdout) peut être un moyen de garantir que les messages sont visibles pour l'utilisateur immédiatement, ce qui améliore l'expérience utilisateur, surtout dans des boucles où l'affichage est mis à jour fréquemment.
- Comportement avec les fichiers binaires : Lorsque fflush est utilisé avec des fichiers binaires, il assure également que tous les tampons internes sont vidés, garantissant que les données écrites dans le fichier sont bien en place. Cela peut prévenir les pertes de données en cas de plantage du programme ou de fermeture inattendue de l'application.
- Pas de garantie de succès dans tous les cas : Bien que fflush soit couramment utilisée pour forcer la synchronisation des tampons, il n'y a pas de garantie qu'elle réussira toujours. Par exemple, si un flux est en mode append ou si un problème système survient (comme un manque d'espace disque), un appel à fflush peut échouer, et il est alors important de vérifier son retour d'erreur avec ferror.
- Précautions dans l'usage avec des fichiers : Bien que fflush assure que les tampons des fichiers sont vidés, elle ne doit pas être utilisée comme une méthode systématique pour garantir que les données sont écrites sur le disque. En effet, pour certains types de fichiers, comme les bases de données ou les fichiers réseau, d'autres mécanismes peuvent être nécessaires pour garantir une gestion correcte des écritures.
Exemple
Voici un exemple permettant de vider les caractères contenu dans le tampon clavier avec de demander de poser une question :
Essayer maintenant !
on obtiendra le résultat suivant :
Vide le tampon clavier avant de poser la questionEntrer une votre message :
Voir également
Langage de programmation - C - Référence procédures et fonctions - fclose
Langage de programmation - C++ - Référence procédures et fonctions - fflush
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 97.
Dernière mise à jour : Mardi, le 28 juillet 2015