.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1980, 1991 Regents of the University of California. .\" and Copyright (c) 2011, Michael Kerrisk .\" All rights reserved. .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\" @(#)lseek.2 6.5 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-23 by Rik Faith .\" Modified 1995-06-10 by Andries Brouwer .\" Modified 1996-10-31 by Eric S. Raymond .\" Modified 1998-01-17 by Michael Haardt .\" .\" Modified 2001-09-24 by Michael Haardt .\" Modified 2003-08-21 by Andries Brouwer .\" 2011-09-18, mtk, Added SEEK_DATA + SEEK_HOLE .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH lseek 2 "2 mai 2024" "Pages du manuel de Linux 6.8" .SH NOM lseek \- Positionner la tête de lecture/écriture dans un fichier .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .P \fBoff_t lseek(int \fP\fIfd\fP\fB, off_t \fP\fIoffset\fP\fB, int \fP\fIwhence\fP\fB);\fP .fi .SH DESCRIPTION \fBlseek\fP() replace la description du fichier ouvert associée au descripteur de fichier \fIfd\fP au paramètre \fIoffset\fP en suivant la directive \fIwhence\fP ainsi : .TP \fBSEEK_SET\fP La tête est placée à \fIoffset\fP octets. .TP \fBSEEK_CUR\fP La tête est placée à son emplacement actuel plus \fIoffset\fP octets. .TP \fBSEEK_END\fP La tête est placée à la taille du fichier plus \fIoffset\fP octets. .P \fBlseek\fP() permet de placer la tête au\-delà de la fin du fichier (mais cela ne modifie pas la taille du fichier). Si des données sont écrites à cet emplacement, une lecture ultérieure de l'espace intermédiaire (un « trou ») retournera des octets NULL (« \e0 ») jusqu'à ce que d'autres données y soient écrites. .SS "Recherche de données et de trous de fichier" Depuis Linux 3.1, Linux prend en charge les valeurs supplémentaires suivantes de \fIwhence\fP : .TP \fBSEEK_DATA\fP Positionner la tête sur le prochain (supérieur ou égal à \fIoffset\fP) emplacement du fichier contenant des données. Si \fIoffset\fP pointe sur des données, la tête est placée sur \fIoffset\fP. .TP \fBSEEK_HOLE\fP Positionner la tête sur le prochain (supérieur ou égal à \fIoffset\fP) trou du fichier. Si \fIoffset\fP pointe au milieu d'un trou, la tête est placée sur \fIoffset\fP. S'il n'y a pas de trou après \fIoffset\fP, la tête est positionnée à la fin du fichier (c'est\-à\-dire qu'il y a un trou implicite à la fin de tous les fichiers). .P Dans les deux cas précédents, \fBlseek\fP() échoue si \fIoffset\fP pointe après la fin du fichier. .P Ces opérations permettent aux applications d'établir une projection des trous dans un fichier fractionné. Cela peut servir aux applications du type outils de sauvegarde, qui peuvent économiser de l'espace lors de la création de sauvegardes et conserver les trous, si elles disposent d'un mécanisme permettant de trouver les trous. .P .\" https://lkml.org/lkml/2011/4/22/79 .\" http://lwn.net/Articles/440255/ .\" http://blogs.oracle.com/bonwick/entry/seek_hole_and_seek_data Pour ces opérations, un trou est une suite de zéros qui n'a (normalement) pas été allouée au stockage sous\-jacent du fichier. Cependant, un système de fichiers n'est pas forcé de signaler les trous, donc ces opérations ne permettent pas de garantir la projection de l'espace de stockage vraiment alloué à un fichier (de plus, une suite de zéros vraiment écrite sur le stockage sous\-jacent pourrait ne pas être signalée comme un trou). La plus simple implémentation de ses opérations pour un système de fichiers, serait avec \fBSEEK_HOLE\fP renvoyant toujours la position de fin de fichier, et \fBSEEK_DATA\fP renvoyant toujours \fIoffset\fP (c'est\-à\-dire, même si \fIoffset\fP pointe à l'emplacement d'un trou, la suite de zéros peut être considérée comme des données). .P La macro de test de fonctionnalités \fB_GNU_SOURCE\fP doit être définie pour accéder aux définitions de \fBSEEK_DATA\fP et \fBSEEK_HOLE\fP depuis \fI\fP. .P Les opérations \fBSEEK_HOLE\fP et \fBSEEK_DATA\fP sont prises en charge avec les systèmes de fichiers suivants : .IP \- 3 Btrfs (depuis Linux 3.1) .IP \- .\" commit 93862d5e1ab875664c6cc95254fc365028a48bb1 OCFS (depuis Linux 3.2) .IP \- XFS (depuis Linux 3.5) .IP \- ext4 (depuis Linux 3.8) .IP \- \fBtmpfs\fP(5) (depuis Linux 3.8) .IP \- .\" commit 1c6dcbe5ceff81c2cf8d929646af675cd59fe7c0 .\" commit 24bab491220faa446d945624086d838af41d616c NFS (depuis Linux 3.18) .IP \- .\" commit 0b5da8db145bfd44266ac964a2636a0cf8d7c286 FUSE (depuis Linux 4.5) .IP \- .\" commit 3a27411cb4bc3ce31db228e3569ad01b462a4310 GFS2 (depuis Linux 4.15) .SH "VALEUR RENVOYÉE" \fBlseek\fP(), si elle réussit, renvoie le nouvel emplacement, mesuré en octets depuis le début du fichier. En cas d'échec, la valeur \fI(off_t)\ \-1\fP est renvoyée, et \fIerrno\fP contient le code d'erreur. .SH ERREURS .TP \fBEBADF\fP \fIfd\fP n'est pas un descripteur de fichier ouvert. .TP \fBEINVAL\fP .\" Some systems may allow negative offsets for character devices .\" and/or for remote filesystems. Soit \fIwhence\fP n'est pas valable, soit la position demandée serait négative, ou après la fin d'un périphérique. .TP \fBENXIO\fP \fIwhence\fP vaut \fBSEEK_DATA\fP ou \fBSEEK_HOLE\fP, et \fIoffset\fP est après la fin du fichier, ou \fIwhence\fP vaut \fBSEEK_DATA\fP et \fIoffset\fP est dans un trou à la fin du fichier. .TP \fBEOVERFLOW\fP .\" HP-UX 11 says EINVAL for this case (but POSIX.1 says EOVERFLOW) La position résultante dans le fichier ne peut être représentée dans un \fIoff_t\fP. .TP \fBESPIPE\fP \fIfd\fP est associé à un tube (pipe), un socket ou une file FIFO. .SH VERSIONS .\" Other systems return the number of written characters, .\" using SEEK_SET to set the counter. (Of written characters.) Sous Linux, l'utilisation de \fBlseek\fP() sur un périphérique terminal échoue avec l'erreur \fBESPIPE\fP. .SH STANDARDS POSIX.1\-2008. .SH HISTORIQUE POSIX.1\-2001, SVr4, 4.3BSD. .P .\" FIXME . Review http://austingroupbugs.net/view.php?id=415 in the future \fBSEEK_DATA\fP et \fBSEEK_HOLE\fP sont des extensions non normalisées existant aussi sous Solaris, FreeBSD et DragonFly BSD. Leur intégration est proposée pour la prochaine révision de POSIX (Issue 8). .SH NOTES Consultez \fBopen\fP(2) pour en savoir plus sur la relation entre les descripteurs de fichiers, les descriptions de fichiers ouverts et les fichiers. .P Si l'attribut d'état du fichier \fBO_APPEND\fP est positionné sur la description du fichier ouvert, une opération \fBwrite\fP(2) déplace \fItoujours\fP la position dans le fichier à la fin du fichier, indépendamment de l'utilisation de \fBlseek\fP(). .P Certains périphériques ne permettent pas de positionnement direct, POSIX ne précise quels périphériques doivent gérer \fBlseek\fP(). .SH "VOIR AUSSI" \fBdup\fP(2), \fBfallocate\fP(2), \fBfork\fP(2), \fBopen\fP(2), \fBfseek\fP(3), \fBlseek64\fP(3), \fBposix_fallocate\fP(3) .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 , Frédéric Hantrais 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 .