fflush - Vider les tampons d'un flux
Bibliothèque C standard (
libc,
-lc)
#include <stdio.h>
int fflush(FILE *flux);
Pour les flux de sortie,
fflush() force l'écriture de toutes les
données se trouvant dans les tampons de l'espace utilisateur pour la
sortie donnée ou met à jour le
flux à
l’aide de la fonction d'écriture sous-jacente.
Pour les flux d'entrée associés à des fichiers dans
lesquels on peut se positionner (c'est le cas des fichiers sur disque, mais
pas des pipes ou des terminaux),
fflush() supprime du tampon toute
donnée lue depuis le fichier sous-jacent qui n'a pas été
traitée par l'application.
L'état d'ouverture du flux n'est pas affecté.
Si l'argument
flux est NULL,
fflush() vide
tous les flux
ouverts en sortie.
Pour une version de cette fonction ignorant les verrouillages, voir
unlocked_stdio(3).
Si elle réussit, cette fonction renvoie
0. Sinon, elle renvoie
EOF et la variable
errno contient le code d'erreur.
- EBADF
-
flux n'est pas ouvert, ou du moins pas en
écriture.
La fonction
fflush() peut aussi échouer et définir
errno avec n'importe quelle erreur spécifiée pour la
routine
write(2).
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
fflush() |
Sécurité des threads |
MT-Safe |
C99, POSIX.1-2001, POSIX.1-2008.
POSIX.1-2008 précise les conditions de vidage des flux en entrée,
mais ce n'était pas le cas pour POSIX.1-2001.
Remarquez que
fflush() ne vide que les tampons d'espace utilisateur
fournis par la bibliothèque C. Pour s'assurer que les
données soient écrites physiquement sur le disque, il faut aussi
vider les tampons du noyau à l'aide par exemple de
sync(2) ou
fsync(2).
fsync(2),
sync(2),
write(2),
fclose(3),
fileno(3),
fopen(3),
fpurge(3),
setbuf(3),
unlocked_stdio(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]>,
Frédéric Hantrais <
[email protected]> et Lucien Gentis
<
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]