.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2006 Andrew Morton .\" and Copyright 2006 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 2006-07-05 Initial creation, Michael Kerrisk based on .\" Andrew Morton's comments in fs/sync.c .\" 2010-10-09, mtk, Document sync_file_range2() .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH sync_file_range 2 "15 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM sync_file_range \- Synchroniser un segment de fichier avec le disque .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#define _GNU_SOURCE\fP /* Consultez feature_test_macros(7) */ \fB#define _FILE_OFFSET_BITS 64\fP \fB#include \fP .PP \fBint sync_file_range(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, off_t \fP\fInbytes\fP\fB,\fP \fB unsigned int \fP\fIflags\fP\fB);\fP .fi .SH DESCRIPTION \fBsync_file_range\fP() permet d'avoir un contrôle fin de la synchronisation d'un fichier ouvert, référencé par le descripteur de fichier \fIfd\fP, sur le disque. .PP \fIoffset\fP est le premier octet de la zone du fichier à synchroniser. \fInbytes\fP indique la taille, en octets, de la zone à synchroniser\ ; si \fInbytes\fP est nul, toute la zone entre \fIoffset\fP et la fin du fichier est synchronisée. La synchronisation se fait par multiples de la taille de page\ : \fIoffset\fP est arrondi par défaut à la frontière d'une page, et \fI(offset+nbytes\-1)\fP est arrondi par excès. .PP L'argument \fIflags\fP contient une ou plusieurs des valeurs suivantes\ : .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP Attendre l'écriture de toutes les pages de la zone indiquée qui ont déjà été envoyées au pilote de périphérique pour écriture, avant d'effectuer cette écriture. .TP \fBSYNC_FILE_RANGE_WRITE\fP 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. .TP \fBSYNC_FILE_RANGE_WAIT_AFTER\fP Attendre l'écriture physique de toutes les pages de la plage après toute demande d'écriture. .PP Indiquer 0 comme \fIflags\fP est possible, dans ce cas l'appel système n'a pas d'effet. .SS Avertissement Cet appel système est extrêmement dangereux et ne devrait pas être utilisé dans des programmes portables. Aucune de ces opérations n'entraîne l'écriture physique des métadonnées du fichier. Par conséquent, à moins que l'application n'effectue strictement que des écrasements de blocs disque déjà instanciés, il n'y a aucune garantie que les données soient disponibles après un plantage.Il n'y a pas d'interface utilisateur pour savoir si une écriture consiste uniquement en un écrasement. Sur un système de fichiers avec une sémantique de copie sur écriture (\fIcopy\-on\-write\fP), tel que \fIbtrfs\fP, un écrasement de blocs existants est impossible. Pour écrire sur un espace déjà alloué, beaucoup de systèmes de fichiers nécessitent aussi des appels à l'allocateur de blocs, qui dans le cas de cet appel, ne seront pas synchronisés sur le disque. Cet appel système ne vide pas les caches d'écriture du disque, ainsi aucune garantie d'intégrité n'est possible sur des systèmes dont les caches de disque en écriture sont volatiles. .SS "Quelques détails" \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP et \fBSYNC_FILE_RANGE_WAIT_AFTER\fP détectent les erreurs d'entrées\-sorties ou la condition \fBENOSPC\fP, et les signalent à l'appelant. .PP Des combinaisons utiles pour \fIflags\fP sont\ : .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE\fP S'assurer de l'écriture physique de toutes les pages de la plage spécifiée qui étaient modifiées lorsque \fBsync_file_range\fP() a été appelé. C'est l'opération «\ démarrer l'écriture pour l'intégrité des données\ ». .TP \fBSYNC_FILE_RANGE_WRITE\fP 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. .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE\fP (ou \fBSYNC_FILE_RANGE_WAIT_AFTER\fP) 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 \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE\fP pour attendre la fin de cette opération et obtenir son résultat. .TP \fBSYNC_FILE_RANGE_WAIT_BEFORE | SYNC_FILE_RANGE_WRITE | SYNC_FILE_RANGE_WAIT_AFTER\fP 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 à \fBsync_file_range\fP() sont bien envoyées sur le disque. .SH "VALEUR RENVOYÉE" S'il réussit \fBsync_file_range\fP() renvoie 0, sinon il renvoie \-1 et remplit \fIerrno\fP avec le code d'erreur. .SH ERREURS .TP \fBEBADF\fP \fIfd\fP n'est pas un descripteur de fichier valable. .TP \fBEINVAL\fP \fIflags\fP contient un bit invalide, ou \fIoffset\fP ou \fInbytes\fP est invalide. .TP \fBEIO\fP Erreur d'entrée\-sortie. .TP \fBENOMEM\fP Plus assez de mémoire. .TP \fBENOSPC\fP Plus de place disque disponible. .TP \fBESPIPE\fP \fIfd\fP correspond à autre chose qu'un fichier ordinaire, un périphérique bloc ou un répertoire. .SH VERSIONS .SS sync_file_range2() .\" See kernel commit edd5cd4a9424f22b0fa08bef5e299d41befd5622 Certaines architectures (par exemple PowerPC et ARM) nécessitent que les paramètres 64\ bits soient alignés dans une paire de registres adéquate. Sur ces architectures, la signature d'appel de \fBsync_file_range\fP() indiquée dans le SYNOPSIS imposerait le gaspillage d'un registre remplissage entre les paramètres \fIfd\fP et \fIoffset\fP (consultez \fBsyscall\fP(2) pour plus de détails). Pour cette raison, ces architectures définissent un appel système différent qui réordonne correctement les paramètres\ : .PP .in +4n .EX \fBint sync_file_range2(int \fP\fIfd\fP\fB, unsigned int \fP\fIflags\fP\fB,\fP \fB off_t \fP\fIoffset\fP\fB, off_t \fP\fInbytes\fP\fB);\fP .EE .in .PP À part cela, le comportement de cet appel système est strictement identique à celui de \fBsync_file_range\fP(). .SH STANDARDS Linux. .SH HISTORIQUE Linux 2.6.17. .SS sync_file_range2() Un appel système avec cette signature est d'abord apparu sur l'architecture ARM dans Linux\ 2.6.20, avec comme nom \fBarm_sync_file_range\fP(). Il a été renommé dans Linux\ 2.6.22, quand un appel système analogue a été ajouté pour PowerPC. Sur des architectures où la glibc est prise en charge, elle remplace de manière transparente \fBsync_file_range2\fP() sous le nom \fBsync_file_range\fP(). .SH NOTES \fB_FILE_OFFSET_BITS\fP doit être défini à 64 dans le code qui récupère l'adresse de \fBsync_file_range\fP, si ce code est destiné à être portable sur les plateformes traditionnelles x86 et ARM 32\ bits où la taille de \fBoff_t\fP est par défaut de 32\ bits. .SH "VOIR AUSSI" \fBfdatasync\fP(2), \fBfsync\fP(2), \fBmsync\fP(2), \fBsync\fP(2) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .