Provided by: manpages-fr-dev_3.27fr1.4-1_all bug

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