FSYNC

Section: Manuel du programmeur Linux (2)
Updated: 30 Mai 2001
Index Retour au Menu Principal

 

NOM

fsync, fdatasync - Synchroniser un fichier en mémoire avec le disque.  

SYNOPSIS

#include <unistd.h>

int fsync (int fd);

int fdatasync (int fd);  

DESCRIPTION

fsync copie sur le disque tous les morceaux encore en mémoire d'un fichier, et attend que le périphérique signale que toutes les portions sont stockées. Cet appel-système met également à jour les informations d'état du fichier. Il ne s'assure pas obligatoirement que les informations concernant le répertoire aient atteint le disque. Pour cela, un appel explicite de fsync sur le descripteur de fichier du répertoire est nécessaire.

fdatasync effectue la même chose que fsync mais il n'envoie sur le disque que les données de l'utilisateur, pas les informations d'état du fichier, ni les horodatages.  

VALEUR RENVOYÉE

fsync et fdatasync renvoient 0 s'ils reussissent, ou -1 s'ils échouent, auquel cas errno contient le code d'erreur.  

ERREURS

EBADF
fd n'est pas un descripteur de fichier valide ouvert en écriture.
EROFS , EINVAL
fd est associé à un type de fichier spécial qui ne permet pas de synchronisation.
EIO
Une erreur s'est produite pendant la synchronisation.
 

NOTES

Si le disque dur dispose d'un tampon en écriture, les données ne sont peut être pas enregistrées définitivement lorsque fsync/fdatasync se terminent.

Lorsqu'un système de fichiers ext2 est monté avec l'option sync, les entrées de répertoires sont également synchronisées lors de l'appel à fsync.

Sur les noyaux antérieurs au 2.4, fsync peut être sensiblement inefficace sur les gros fichiers. Une autre solution peut être l'utilisation de l'attribut O_SYNC lors de l'invocation de open(2).  

COMPATIBILITÉ

POSIX.1b (précédement POSIX.4)  

VOIR AUSSI

bdflush(2), open(2), sync(2), mount(8), update(8), sync(8).  

TRADUCTION

Christophe Blaess, 1997.



 

Index

NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
NOTES
COMPATIBILITÉ
VOIR AUSSI
TRADUCTION


Time: 21:38:49 GMT, December 19, 2004