man fdatasync (Appels systèmes) - synchronise des données en mémoire avec un fichier sur disque.
NOM
fdatasync - synchronise des données en mémoire avec un fichier sur disque.
SYNOPSIS
#include <unistd.h> int fdatasync(int fd);
DESCRIPTION
fdatasync vide tous les buffers de données du fichier vers le disque (avant que l'appel ne revienne). Il ressemble à fsync mais ne met pas nécessairement à jour les méta-données comme l'heure d'accès.
Les applications accédant à des bases de données ou des fichiers journaux écrivent souvent de petits fragments de données (une ligne de texte par exemple) et appellent fsync immédiatement pour être sûr du stockage sur disque. Malheureusement, fsync va déclencher deux écritures : une pour les données et une pour mettre à jour la date de modification enregistrée dans l'i-noeud. Si la date de modification n'est pas importante pour l'application, alors fdatasync peut être invoquée pour éviter l'accès inutile à l'i-noeud.
VALEUR RENVOYÉE
L'appel renvoie zéro s'il réussit et -1 s'il échoue auquel cas errno contient le code d'erreur.
ERREURS
- EBADF
- fd n'est pas un descripteur de fichier ouvert en écriture.
- EROFS, EINVAL
- fd correspond à un fichier spécial ne supportant pas la synchronisation.
- EIO
- Une erreur d'entrée/sortie s'est produite.
BOGUES
Actuellement (Linux 2.2) fdatasync est équivalent à fsync.
DISPONIBILITÉ
Sur les systèmes POSIX sur lesquels fdatasync est disponible, la constante symbolique _POSIX_SYNCHRONIZED_IO est définie dans <unistd.h> comme étant une valeur supérieure à 0. (Voir aussi sysconf(3).)
CONFORMITÉ
POSIX1b (anciennement POSIX.4)
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.