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

NOM

       sync_file_range - Synchroniser un segment de fichier avec le disque

SYNOPSIS

       #define _GNU_SOURCE
       #include <fcntl.h>

       int sync_file_range(int fd, off64_t offset, off64_t nbytes,
                           unsigned int flags);

DESCRIPTION

       sync_file_range()  permet d'avoir un controle fin de la synchronisation
       d'un fichier ouvert, reference par le descripteur de fichier fd, sur le
       disque.

       offset  est  le  premier  octet  de  la zone du fichier a synchroniser.
       nbytes indique la taille, en octets, de la  zone  a  synchroniser ;  si
       nbytes  est  nul,  toute  la zone entre offset et la fin du fichier est
       synchronisee. La synchronisation se fait par multiples de la taille  de
       page :  offset  est  arrondi  par  defaut a la frontiere d'une page, et
       (offset+nbytes-1) est arrondi par exces.

       L'argument flags contient une ou plusieurs des valeurs suivantes :

       SYNC_FILE_RANGE_WAIT_BEFORE
              Attendre l'ecriture de toutes les pages de la zone indiquee  qui
              ont  deja  ete envoyees au pilote de peripherique pour ecriture,
              avant d'effectuer cette ecriture.

       SYNC_FILE_RANGE_WRITE
              Commencer l'ecriture physique de toutes les pages  modifiees  de
              la  plage indiquee pour lesquelles l'ecriture n'a pas encore ete
              demandee. Veuillez noter que cela peut bloquer  si  vous  tentez
              d'ecrire plus que la taille de la file demandee.

       SYNC_FILE_RANGE_WAIT_AFTER
              Attendre  l'ecriture  physique  de  toutes les pages de la plage
              apres toute demande d'ecriture.

       Indiquer 0 comme flags est possible, dans ce cas  l'appel  systeme  n'a
       pas d'effet.

   Avertissement
       Cet  appel  systeme  est  extremement  dangereux et ne devrait pas etre
       utilise  dans  des  programmes  portables.  Aucune  de  ces  operations
       n'entraine   l'ecriture   physique  des  metadonnees  du  fichier.  Par
       consequent, a moins que l'application n'effectue  strictement  que  des
       ecrasements  de  blocs disque deja instanties, il n'y a aucune garantie
       que les donnees soient disponibles  apres  un  plantage.Il  n'y  a  pas
       d'interface utilisateur pour savoir si une ecriture consiste uniquement
       en un ecrasement. Sur un systeme de fichiers  avec  une  semantique  de
       copie  sur  ecriture  (copy-on-write),  tel que btrfs, un ecrasement de
       blocs existants est impossible. Pour ecrire sur un espace deja  alloue,
       beaucoup  de  systemes  de  fichiers  necessitent  aussi  des  appels a
       l'allocateur de blocs, qui dans le cas de  cet  appel,  ne  seront  pas
       synchronises  sur  le  disque. Cet appel systeme ne vide pas les caches
       d'ecriture du disque, ainsi aucune garantie d'integrite n'est  possible
       sur des systemes dont les caches de disque en ecriture sont volatiles.

   Quelques d'etails
       SYNC_FILE_RANGE_WAIT_BEFORE et SYNC_FILE_RANGE_WAIT_AFTER detectent les
       erreurs d'entrees-sorties ou la condition ENOSPC, et  les  signalent  a
       l'appelant.

       Des combinaisons utiles pour flags sont :

       SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE
              S'assurer de l'ecriture physique de toutes les pages de la plage
              specifiee qui etaient modifiees lorsque sync_file_range() a  ete
              appele.    C'est   l'operation   << demarrer   l'ecriture   pour
              l'integrite des donnees >>.

       SYNC_FILE_RANGE_WRITE
              Commencer l'ecriture physique de toutes les pages  modifiees  de
              la  plage indiquee pour lesquelles l'ecriture n'a pas encore ete
              demandee.  C'est  une  operation  << vidage  vers  le  disque >>
              asynchrone.  Elle  n'est  pas  convenable  pour  les  operations
              d'integrite de donnees.

       SYNC_FILE_RANGE_WAIT_BEFORE (ou SYNC_FILE_RANGE_WAIT_AFTER)
              Attendre la fin de l'ecriture physique de toutes les pages de la
              plage  indiquee.  Cela  peut  etre  utilise  apres une operation
              SYNC_FILE_RANGE_WAIT_BEFORE   |    SYNC_FILE_RANGE_WRITE    pour
              attendre la fin de cette operation et obtenir son resultat.

       SYNC_FILE_RANGE_WAIT_BEFORE       |       SYNC_FILE_RANGE_WRITE       |
       SYNC_FILE_RANGE_WAIT_AFTER
              C'est une operation << ecriture pour  integrite  des  donnees >>
              qui  s'assure  que  toutes  les  pages  modifiees  dans la plage
              specifiee lors de l'appel a sync_file_range() sont bien envoyees
              sur le disque.

VALEUR RENVOY'EE

       S'il  reussit  sync_file_range()  renvoie  0,  sinon  il  renvoie -1 et
       remplit errno avec le code d'erreur.

ERREURS

       EBADF  fd n'est pas un descripteur de fichier valable.

       EINVAL flags  contient  un  bit  invalide,  ou  offset  ou  nbytes  est
              invalide.

       EIO    Erreur d'entree-sortie.

       ENOMEM Plus de memoire disponible.

       ENOSPC Plus de place disque disponible.

       ESPIPE fd   correspond  a  autre  chose  qu'un  fichier  ordinaire,  un
              peripherique bloc, un repertoire, ou un lien symbolique.

VERSIONS

       sync_file_range() est apparu dans Linux 2.6.17.

CONFORMIT'E

       Cet appel systeme est specifique a Linux et ne devrait pas etre utilise
       dans des applications concues pour etre portable.

VOIR AUSSI

       fdatasync(2), fsync(2), msync(2), sync(2), feature_test_macros(7)

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

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