dwww Home | Manual pages | Find package

fsync(2)                      System Calls Manual                     fsync(2)

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

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #include <unistd.h>

       int fsync(int fd);

       int fdatasync(int fd);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consulter
   feature_test_macros(7)) :

       fsync() :
           Glibc 2.16 et supérieures :
               Aucune macro de fonction de test à définir
           Glibc inférieure ou égale à 2.15 :
               _BSD_SOURCE || _XOPEN_SOURCE
                   || /* Depuis la glibc 2.8 : */ _POSIX_C_SOURCE >= 200112L

       fdatasync() :
           _POSIX_C_SOURCE >= 199506L || _XOPEN_SOURCE >= 500

DESCRIPTION
       fsync()   transfère   (« flush »)   toutes   les   données    modifiées
       (c'est-à-dire  les pages modifiées du cache mémoire) du fichier corres-
       pondant au descripteur fd sur le disque (ou autre périphérique de  sto-
       ckage  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 trans-
       fert est terminé.

       Outre  les données du fichier, fsync() transfère aussi les méta-données
       associées au fichier (voir inode(7)).

       Un appel à fsync() n'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 (respectivement, heure du dernier accès et de la dernière  mo-
       dification ;  consultez inode(7)) ne sont pas transférées, car elles ne
       sont pas nécessaires à une lecture de données ultérieure. En  revanche,
       une  modification de la taille du fichier (st_size), par exemple effec-
       tuée par ftruncate(2), nécessite un transfert des méta-données.

       Le but de fdatasync() est de réduire l'activité du disque pour les  ap-
       plications  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 est positionné pour indiquer l'erreur.

ERREURS
       EBADF  Le descripteur de fichier fd est non valable.

       EINTR  La  fonction  a  été  interrompue  par un signal ; consultez si-
              gnal(7).

       EIO    Une erreur s'est produite pendant la synchronisation. Cette  er-
              reur  peut  provenir  de l'écriture de données sur un autre des-
              cripteur de fichier dans le même fichier. Depuis Linux 4.13, les
              erreurs  survenues  pendant l'écriture sont signalées à tous les
              descripteurs de fichier qui pourraient avoir écrit des données à
              l'origine de l'erreur. Certains systèmes de fichiers (comme NFS)
              gardent le suivi du descripteur de fichier d'où proviennent  les
              données  et  donnent un retour plus précis. D'autres systèmes de
              fichiers (comme la plupart des locaux)  signaleront  l'erreur  à
              tous  les  descripteurs  de fichier ouverts sur le fichier quand
              l'erreur a été enregistrée.

       ENOSPC L'espace disque a été épuisé pendant la synchronisation.

       EROFS, EINVAL
              fd est associé à un type de fichier spécial (comme un  tube,  un
              FIFO  ou  un  socket) qui ne prend pas en charge la synchronisa-
              tion.

       ENOSPC, EDQUOT
              fd est associé à un fichier sur un système de  fichiers  NFS  ou
              autre  qui  n'alloue  pas  d'espace au moment de l'appel système
              write(2) et des écritures passées ont échoué à cause d'un espace
              de stockage insuffisant.

STANDARDS
       POSIX.1-2001, POSIX.1-2008, 4.3BSD.

       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 descrip-
       teur de fichier 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  du disque. Dans ces situations, les caches du 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
       sync(1),  bdflush(2),  open(2),  posix_fadvise(2), pwritev(2), sync(2),
       sync_file_range(2), fflush(3), fileno(3), hdparm(8), mount(8)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois  Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Gué-
       rard <fevrier@tigreraye.org>, Jean-Luc  Coulon  (f5ibh)  <jean-luc.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.org>,  David  Prévot  <david@tilapin.org> et Jean-Philippe MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la        GNU        General       Public       License       version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ concernant  les  conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si  vous découvrez un bogue dans la traduction de cette page de manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   5 février 2023                        fsync(2)

Generated by dwww version 1.15 on Sat Jun 29 00:27:09 CEST 2024.