Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
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> >>.