fdatasync

Autres langues

Langue: fr

Version: 13 avril 1996 (mandriva - 01/05/08)

Section: 2 (Appels système)

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 tampons de données du fichier vers le disque (avant que l'appel ne revienne). Il ressemble à fsync(2) 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(2) immédiatement pour être sûr du stockage sur disque. Malheureusement, fsync(2) 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.
EIO
Une erreur d'entrée-sortie s'est produite pendant la synchronisation.
EROFS, EINVAL
fd correspond à un fichier spécial ne supportant pas la synchronisation.

CONFORMITÉ

POSIX.1-2001.

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).)

NOTES

Dans Linux 2.2 et précédents, fdatasync() était équivalent à fsync(2), et n'apportait donc aucun avantage en performance.

VOIR AUSSI

fsync(2), sync_file_range(2)

B.O. Gallmeister, POSIX.4, O'Reilly, pp. 220-223 and 343.

TRADUCTION

Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 15 octobre 1996 et révisée le 24 novembre 2007.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 fdatasync ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.