.\" -*- coding: UTF-8 -*- .\" Copyright (c) 2016, Oracle. All rights reserved. .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" This is free documentation; you can redistribute it and/or .\" modify it under the terms of the GNU General Public License as .\" published by the Free Software Foundation; either version 2 of .\" the License, or (at your option) any later version. .\" .\" The GNU General Public License's references to "object code" .\" and "executables" are to be interpreted as the output of any .\" document formatting or typesetting system, including .\" intermediate and printed output. .\" .\" This manual is distributed in the hope that it will be useful, .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public .\" License along with this manual; if not, see .\" . .\" %%%LICENSE_END .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH IOCTL_FICLONERANGE 2 "15 septembre 2017" Linux "Manuel du programmeur Linux" .SH NOM ioctl_ficlonerange, ioctl_ficlone \- partager certaines données d'un fichier avec un autre fichier .SH SYNOPSIS \fB#include \fP .br \fB#include \fP .PP \fBint ioctl(int \fP\fIdest_fd\fP\fB, FICLONERANGE, struct file_clone_range *\fP\fIarg\fP\fB);\fP .br \fBint ioctl(int \fP\fIdest_fd\fP\fB, FICLONE, int \fP\fIsrc_fd\fP\fB);\fP .SH DESCRIPTION Si un système de fichiers prend en charge le stockage physique du partage de fichiers entre plusieurs fichiers («\ reflink\ »), cette opération \fBioctl\fP(2) peut être utilisée pour faire apparaître des données du fichier \fIsrc_fd\fP dans le fichier \fIdest_fd\fP en partageant le stockage sous\-jacent, ce qui est plus rapide que de faire une copie physique séparée des données. Les deux fichiers doivent se trouver sur le même système de fichiers. Si une écriture de fichier doit avoir lieu sur une région partagée, le système de fichiers doit garantir que les modifications n’appartiennent qu’au fichier qui est écrit. On appelle généralement ce comportement la «\ copie sur écriture\ ». .PP Cet ioctl «\ reflink\ » jusqu'à \fIsrc_length\fP octets du descripteur de fichier \fIsrc_fd\fP, à la position \fIsrc_offset\fP dans le fichier \fIdest_fd\fP à la position \fIdest_offset\fP, pourvu que les deux soient des fichiers. Si \fIsrc_length\fP vaut zéro, l'ioctl «\ reflink\ » à la fin du fichier source. Ces informations vont dans une structure de la forme suivante\ : .PP .in +4n .EX struct file_clone_range { __s64 src_fd; __u64 src_offset; __u64 src_length; __u64 dest_offset; }; .EE .in .PP Les clones sont atomiques par rapport aux écritures concomitantes, vous n'avez donc pas besoin de poser de verrous pour avoir une copie clonéecohérente. .PP L'ioctl \fBFICLONE\fP clone des fichiers entiers. .SH "VALEUR RENVOYÉE" En cas d'erreur, la valeur de retour est \fB\-1\fP et \fIerrno\fP est définie pour préciser l'erreur. .SH ERREURS Les codes d'erreur peuvent être, entre autres, les suivants\ : .TP \fBEBADF\fP \fIsrc_fd\fP n'est pas ouvert en lecture\ ; \fIdest_fd\fP n'est pas ouvert en écriture ou il n'est ouvert que pour des ajouts d'écritures\ ; ou le système de fichiers où se trouve \fIsrc_fd\fP ne gère pas le reflink. .TP \fBEINVAL\fP Le système de fichiers ne gère pas le reflink des plages de fichiers donnés. Cette erreur peut également apparaître si un descripteur de fichier représente un périphérique, un FIFO ou un socket. Les systèmes de fichiers d'un disque nécessitent généralement que les paramètres de la position et de la longueur soient alignés sur la taille de bloc fondamentale. XFS et Btrfs ne prennent pas en charge le chevauchement des plages de reflink dans le même fichier. .TP \fBEISDIR\fP Un ou plusieurs fichiers sont des répertoires et le système de fichiers ne gère pas les régions partagées dans les répertoires. .TP \fBEOPNOTSUPP\fP Cela peut apparaître si le système de fichiers ne gère pas le reflink d'un descripteur de fichier ou si le descripteur se rapporte à des inœuds spéciaux. .TP \fBEPERM\fP \fIdest_fd\fP est immuable. .TP \fBETXTBSY\fP Un des fichiers est un fichier d'échange. Les fichiers d'échange ne peuvent pas partager de stockage. .TP \fBEXDEV\fP \fIdest_fd\fP et \fIsrc_fd\fP ne sont pas sur le même système de fichiers monté. .SH VERSIONS Ces opérations d'ioctl sont apparues pour la première fois dans Linux\ 4.5. Elles étaient précédemment connues en tant que \fBBTRFS_IOC_CLONE\fP et \fBBTRFS_IOC_CLONE_RANGE\fP, et elles étaient réservées à Btrfs. .SH CONFORMITÉ Cette API est spécifique à Linux. .SH NOTES Une opération de copie sur écriture nécessitant l'allocation d'un nouveau stockage, l'opération \fBfallocate\fP(2) peut ne plus partager les blocs partagés pour garantir que les écritures suivantes n'échoueront pas du fait d'un manque d'espace disque. .SH "VOIR AUSSI" \fBioctl\fP(2) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .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-Philippe MENGUAL . .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 .