Loading

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);

       sync_file_range()  permet d’avoir un contrôle fin de la synchronisation
       d’un fichier ouvert, référencé par le descripteur de fichier fd, sur le
       disque.

       offset  est  le  premier  octet  de  la zone du fichier à synchroniser.
       nbytes indique la taille, en octets, de la  zone  à  synchroniser ;  si
       nbytes  est  nul,  toute  la zone entre offset et la fin du fichier est
       synchronisée. La synchronisation se fait par multiples de la taille  de
       page :  offset  est  arrondi  par  défaut à la frontière d’une page, et
       (offset+nbytes-1) est arrondi par excès.

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

       SYNC_FILE_RANGE_WAIT_BEFORE
              Attendre l’écriture de toutes les pages de la zone indiquée  qui
              ont  déjà  été  envoyée au pilote de périphérique pour écriture,
              avant d’effectuer cette écriture.

       SYNC_FILE_RANGE_WRITE
              Commencer l’écriture physique de toutes les pages  modifiées  de
              la  plage indiquée pour lesquelles l’écriture n’a pas encore été
              demandée. Veuillez noter que cela peut bloquer  si  vous  tentez
              d’écrire plus que la taille de la file demandée.

       SYNC_FILE_RANGE_WAIT_AFTER
              Attendre  l’écriture  physique  de  toutes les pages de la plage
              après toute demande d’écriture.

       Indiquer 0 comme flags est possible, dans ce cas  l’appel  système  n’a
       pas d’effet.

   Quelques détails
       Aucune de ces opérations n’entraîne l’écriture physique des métadonnées
       du  fichier.  Par  conséquent,  à  moins  que  l’application   effectue
       strictement  des  écrasements de blocs disque déjà instantiés, il n’y a
       aucune garantie que les données soient disponibles après un plantage.

       SYNC_FILE_RANGE_WAIT_BEFORE et SYNC_FILE_RANGE_WAIT_AFTER détectent les
       erreurs  d’entrées-sorties  ou  la condition ENOSPC, et les signalent à
       l’appelant.

       Des combinaisons utiles pour flags sont :

       SYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE
              S’assurer de l’écriture physique de toutes les pages de la plage
              spécifiée  qui étaient modifiées lorsque sync_file_range() a été
              appelé. C’est l’opération « démarrer l’écriture pour l’intégrité
              des données ».

       SYNC_FILE_RANGE_WRITE
              Commencer  l’écriture  physique de toutes les pages modifiées de
              la plage indiquée pour lesquelles l’écriture n’a pas encore  été
              demandée.   C’est   une  opération  « vidage  vers  le  disque »
              asynchrone.  Elle  n’est  pas  convenable  pour  les  opérations
              d’intégrité de données.

       SYNC_FILE_RANGE_WAIT_BEFORE (ou SYNC_FILE_RANGE_WAIT_AFTER)
              Attendre la fin de l’écriture physique de toutes les pages de la
              plage indiquée. Cela  peut  être  utilisé  après  une  opération
              SYNC_FILE_RANGE_WAIT_BEFORE    |    SYNC_FILE_RANGE_WRITE   pour
              attendre la fin de cette opération et obtenir son résultat.

       SYNC_FILE_RANGE_WAIT_BEFORE       |       SYNC_FILE_RANGE_WRITE       |
       SYNC_FILE_RANGE_WAIT_AFTER
              C’est une opération « écriture pour intégrité des données »  qui
              s’assure  que toutes les pages modifiées dans la plage spécifiée
              lors de l’appel à sync_file_range() sont bien  envoyées  sur  le
              disque.

VALEUR RENVOYÉE

       S’il  réussit  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’entrée-sortie.

       ENOMEM Plus de mémoire disponible.

       ENOSPC Plus de place disque disponible.

       ESPIPE fd   correspond  à  autre  chose  qu’un  fichier  ordinaire,  un
              périphérique en mode bloc, un répertoire, ou un lien symbolique.

VERSIONS

       sync_file_range() est apparu dans Linux 2.6.17.

CONFORMITÉ

       Cet appel système est spécifique à Linux et ne devrait pas être utilisé
       dans des applications conçues pour être portable.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de  la  publication  3.23  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

       Cette page de manuel a été traduite et est maintenue par Julien Cristau
       <julien.cristau@ens-lyon.org> et l’équipe francophone de traduction  de
       Debian.

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