Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

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

SYNOPSIS

       #include <unistd.h>

       int fsync(int fd);

       int fdatasync(int fd);

   Exigences    de    macros    de   test   de   fonctionnalités   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() transfère toutes les données modifiées (c'est-à-dire les pages modifiées du  cache
       mémoire)  du  fichier correspondant au descripteur fd sur le disque (ou autre périphérique
       de stockage permanent) afin que toutes les informations modifiées puissent être récupérées
       même  après un plantage ou un redémarrage du système. Cela nécessite d'écrire ou de purger
       le cache du disque, s'il en existe un. L'appel  bloque  jusqu'à  ce  que  le  périphérique
       indique  que  le  transfert  est  terminé.  Il  transfère aussi les informations d'état du
       fichier (consultez stat(2)).

       Un appel à fsync() 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() est similaire à fsync(), mais ne transfère pas les méta‐données, sauf  si  ces
       informations  sont  nécessaires à une récupération ultérieure de données. Par exemple, les
       modifications  de  st_atime  ou  st_mtime  (heures  de  dernier  accès  et   de   dernière
       modification,  respectivement ;  consultez  stat(2)) ne sont pas transférées, car elles ne
       sont  pas  nécessaires  à  une  lecture  de  données  ultérieurement.  En  revanche,   une
       modification  de  la  taille du fichier (st_size), par exemple effectuée par ftruncate(2),
       nécessite un transfert des méta‐données.

       Le but de fdatasync() est de réduire l'activité disque pour les applications qui n'ont pas
       besoin d'une parfaite synchronisation des méta‐données avec le disque.

VALEUR RENVOYÉE

       Ces  appels  système  renvoient 0 en cas de succès, ou -1 en cas d'échec, auquel cas errno
       contient le code d'erreur.

ERREURS

       EBADF  Le descripteur de fichier fd est invalide.

       EIO    Une erreur s'est produite pendant la synchronisation.

       EROFS, EINVAL
              fd est associé à un type de fichier spécial qui ne permet pas de synchronisation.

CONFORMITÉ

       BSD 4.3, 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.
       (Consultez aussi sysconf(3).)

NOTES

       Sur certains systèmes UNIX (mais pas Linux), fd  doit  être  un  descripteur  de  fichiers
       accessible en écriture.

       Sous  Linux  2.2  et  précédents,  fdatasync() est équivalent à fsync(), et n'apporte donc
       aucun avantage en performance.

       Les implémentations de la fonction fsync() dans  les  vieux  noyaux  et  les  systèmes  de
       fichiers  les  moins  utilisés  ne  savent  pas  comment vider les caches disque. Dans ces
       situations, les caches disque ont besoin d'être désactivés avec  hdparm(8)   ou  sdparm(8)
       afin de garantir la sûreté des opérations.

VOIR AUSSI

       bdflush(2), open(2), sync(2), sync_file_range(2), hdparm(8), mount(8), sync(8)

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».