Rechercher une page de manuel
sync_file_range
Langue: fr
Version: 5 juillet 2006 (mandriva - 01/05/08)
Section: 2 (Appels système)
Sommaire
NOM
sync_file_range - Synchroniser un segment de fichier avec le disqueSYNOPSIS
#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 un contrôle précis lors de la synchronisation du fichier ouvert, référencé par le descripteur de fichier fd, avec le disque.offset est le premier octet de la plage du fichier à synchroniser. nbytes indique la longueur, en octets, de la plage à synchroniser ; si nbytes vaut zéro, tous les octets à partir de offset jusqu'à la fin du fichier sont synchronisés. La synchronisation est en unité de taille de page système : offset est arrondi par défaut sur une frontière de page ; (offset+nbytes-1) est arrondi par excès sur une frontière de page.
L'argument masque de bits flags peut contenir les valeurs suivantes :
- SYNC_FILE_RANGE_WAIT_BEFORE
- Avant de réaliser d'autres écritures, attendre l'écriture physique de toutes les pages de la plage indiquée dont l'écriture a déjà été demandée au pilote du périphérique.
- SYNC_FILE_RANGE_WRITE
- Commencer l'écriture physique de toutes les pages modifiées de la plage indiquée pour lesquelles elle 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.
Il est permis de définir flags à 0, auquel cas, cela est considéré comme une non opération.
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étecteront toute erreur d'entrées-sorties ou erreur ENOSPC et les renverront à l'appelant.
Des combinaisons utiles des bits de 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 elle 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.
VALEUR RENVOYÉE
S'il réussit, sync_file_range() renvoie 0 ; s'il échoue, il renvoie -1 et errno est remplie en conséquence pour indiquer l'erreur.ERREURS
- EBADF
- fd n'est pas un descripteur de fichier valide.
- EIO
- Erreur d'entrés-sorties.
- EINVAL
- flags spécifie un bit invalide ; ou offset ou nbytes n'est pas valide.
- ENOMEM
- Mémoire insuffisante.
- ENOSPC
- Espace disque insuffisant.
- ESPIPE
- fd fait référence à autre chose qu'un fichier régulier, un prériphérique de bloc, un répertoire ou un lien symbolique.
VERSIONS
sync_file_range() est apparu dans Linux dans le noyau 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 portables.VOIR AUSSI
fdatasync(2), fsync(2), msync(2), sync(2), feature_test_macros(7)TRADUCTION
Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 11 août 2006 et révisée le 26 novembre 2007.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 2 sync_file_range ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre