FDATASYNC(2)

Nom
fdatasync - Synchroniser les donnees en memoire avec celles sur disque.

SYNOPSIS
#include <unistd.h>

#ifdef _POSIX_SYNCHRONIZED_IO

int fdatasync(int fd);

#endif

DESCRIPTION
fdatasync vide sur le disque tous les buffers de donnees d'un fichier (avant le retour de l'appel systeme). Il ressemble a fsync mais il n'a pas besoin de mettre a jour des informations dans l'i-noeud (comme l'heure d'acces par exemple). Les applications qui utilisent des bases de donnees ou des fichiers de journalisation (log) ecrivent souvent de tres petits enregistrements (ex: 1 ligne d'un fichier de journalisation) et appellent ensuite fsync immediatement pour s'assurer que les donnees ont ete physiquement ecrites sur le disque. Malheureusement fsync demande toujours deux operations d'ecriture : une pour les nouvelles donnees, et une seconde pour mettre a jour l'heure de modification de l'i-noeud. Si l'heure de modification n'est pas utile a l'application, l'appel a fdatasync sera preferable car il evite l'ecriture inutile sur le noeud du systeme de fichiers.

VALEUR RENVOYEE
fdatasync renvoie 0 s'il reussit, ou -1 en cas d'echec, auquel cas errno contient le code d'erreur.

ERREURS

EBADF
    fd n'est pas un descripteur de fichier valide ouvert en ecriture.

EROFS, EINVAL
    fd est relie a un type de fichier qui ne permet pas la synchronisation.

EIO Une erreur s'est produite durant la synchronisation.

BUGS
Actuellement (Linux 2.0.23) fdatasync est equivalent a fsync.

CONFORMITE
POSIX1b (precedement POSIX.4).

VOIR AUSSI
fsync(2), B.O. Gallmeister, POSIX.4, O'Reilly, pp. 220-223 and 343.