Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
fsync, fdatasync - Synchroniser un fichier en memoire avec le disque
SYNOPSIS
#include <unistd.h>
int fsync(int fd);
int fdatasync(int fd);
Exigences de macros de test de fonctionnalites pour la glibc (consultez
feature_test_macros(7)) :
fsync() : _BSD_SOURCE || _XOPEN_SOURCE
|| /* depuis la glibc 2.8 : */ _POSIX_C_SOURCE >= 200112L
fdatasync() : _POSIX_C_SOURCE >= 199309L || _XOPEN_SOURCE >= 500
DESCRIPTION
fsync() transfere toutes les donnees modifiees du fichier correspondant
au descripteur fd sur le disque (ou autre peripherique de stockage
permanent) ou ce fichier se trouve. L'appel bloque jusqu'a ce que le
peripherique indique que le transfert est termine. Il transfere aussi
les informations d'etat du fichier (consultez stat(2)).
Un appel a fsync() ne s'assure pas obligatoirement que les informations
concernant le repertoire aient atteint le disque. Pour cela, un appel
explicite de fsync() sur le descripteur de fichier du repertoire est
necessaire.
fdatasync() est similaire a fsync(), mais ne transfere pas les meta-
donnees, sauf si ces informations sont necessaires a une recuperation
ulterieure de donnees. Par exemple, les modifications de st_atime ou
st_mtime (heures de dernier acces et de derniere modification,
respectivement ; consultez stat(2)) ne sont pas transferees, car elles
ne sont pas necessaires a une lecture de donnees ulterieurement. En
revanche, une modification de la taille du fichier (st_size), par
exemple effectuee par ftruncate(2), necessite un transfert des meta-
donnees.
Le but de fdatasync() est de reduire l'activite disque pour les
applications qui n'ont pas besoin d'une parfaite synchronisation des
meta-donnees avec le disque.
VALEUR RENVOY'EE
Ces appels systeme renvoient 0 en cas de succes, ou -1 en cas d'echec,
auquel cas errno contient le code d'erreur.
ERREURS
EBADF fd n'est pas un descripteur de fichier valable ouvert en
ecriture.
EIO Une erreur s'est produite pendant la synchronisation.
EROFS, EINVAL
fd est associe a un type de fichier special qui ne permet pas de
synchronisation.
CONFORMIT'E
BSD 4.3, POSIX.1-2001.
DISPONIBILIT'E
Sur les systemes POSIX sur lesquels fdatasync() est disponible, la
constante symbolique _POSIX_SYNCHRONIZED_IO est definie dans <unistd.h>
comme etant une valeur superieure a 0. (Consultez aussi sysconf(3).)
NOTES
Les applications accedant a des bases de donnees ou des fichiers
journaux ecrivent souvent de petits fragments de donnees (une ligne de
texte par exemple) et appellent fsync() immediatement pour etre sur du
stockage sur disque. Malheureusement, fsync() va declencher deux
ecritures : une pour les donnees et une pour mettre a jour la date de
modification enregistree dans l'inoeud. Si la date de modification
n'est pas importante pour l'application, alors fdatasync peut etre
invoquee pour eviter l'acces inutile a l'inoeud.
Si le disque dur dispose d'un tampon en ecriture, les donnees ne sont
peut-etre pas enregistrees definitivement lorsque fsync() ou
fdatasync() se termine.
Lorsqu'un systeme de fichiers ext2 est monte avec l'option sync, les
entrees de repertoires sont egalement synchronisees lors de l'appel a
fsync().
Sur les noyaux anterieurs au 2.4, fsync() peut etre sensiblement
inefficace sur les gros fichiers. Une autre solution peut etre
l'utilisation de l'attribut O_SYNC lors de l'invocation de open(2).
Sous Linux 2.2 et precedents, fdatasync() est equivalent a fsync(), et
n'apporte donc aucun avantage en performance.
VOIR AUSSI
bdflush(2), open(2), sync(2), sync_file_range(2), hdparm(8), mount(8),
sync(8), update(8)
COLOPHON
Cette page fait partie de la publication 3.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.