Votre IP: 38.107.179.244 
  
 
Google
 
Accueil e-mail Linux
Linux
Perl
Perl
C
Langage C
Dico
Dictionnaire
Biblio liens
Bibliothèque de liens
Index articles
Index articles
 

Date création : 27-03-2008 20:23:44

Linux  Vous êtes dans : GNU/Linux Astuces / Pages man [Section2 - Appels système]


SYNC_FILE_RANGE

 

Index

  1. NOM
  2. SYNOPSIS
  3. DESCRIPTION
  4. NOTES
  5. ERREURS
  6. CONFORMITÉ
  7. VOIR AUSSI
  8. TRADUCTION

 

NOMIndex

sync_file_range - Synchroniser un segment de fichier avec le disque  

SYNOPSISIndex

#define _GNU_SOURCE
#include <fcntl.h>

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

DESCRIPTIONIndex

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

NOTESIndex

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 fdatasync(2) traditionnelle. 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.
 

ERREURSIndex

EBADF
fd n'est pas un descripteur de fichier valide.
EIO
Erreur d'entrées-sorties.
EINVAL
flags contient un bit invalide, ou offset ou nbytes est invalide.
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.
 

CONFORMITÉIndex

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

VOIR AUSSIIndex

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

TRADUCTIONIndex

Cette page de manuel a été traduite par Julien Cristau <julien.cristau@ens-lyon.org>.
La traduction de cette page de manuel est basée sur les traductions disponibles sur http://manpagesfr.free.fr/, mais est gérée par l'équipe francophone de traduction de Debian au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction 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> ».


Création : octobre 2007  © Tous droits réservés 2007 linux-perl-c
Valid HTML 4.01 TransitionalValid CSS