lseek64
Table des matières
Retour à l'index
NOM
lseek64 - Positionner la tête de lecture/écriture dans un fichier (version
64 bits)
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#define _LARGEFILE64_SOURCE /* Consultez feature_test_macros(7) */
#include <sys/types.h>
#include <unistd.h>
off64_t lseek64(int fd, off64_t décalage, int origine_décalage);
DESCRIPTION
Les fonctions de la famille lseek() repositionnent la tête de lecture du
fichier ouvert associé au descripteur de fichier fd à décalage octets
relativement au début du fichier, à la position actuelle ou à la fin du
fichier lorsque origine_décalage a respectivement la valeur SEEK_SET,
SEEK_CUR ou SEEK_END.
Pour plus de détails sur les valeurs renvoyées et les erreurs, consultez
lseek(2).
Quatre interfaces sont disponibles : lseek(), lseek64(), llseek()
et _llseek().
lseek()
Prototype :
off_t lseek(int fd, off_t offset, int whence);
La fonction enveloppe de la bibliothèque C lseek() utilise le type
off_t. C'est un type signé 32 bits pour les architectures 32 bits, à
moins que l'on compile avec
#define _FILE_OFFSET_BITS 64
auquel cas c'est un type signé 64 bits.
lseek64()
Prototype :
off64_t lseek64(int fd, off64_t décalage, int origine_décalage);
La fonction de bibliothèque lseek64() utilise un type 64 bits même si
off_t est un type 32 bits. Son prototype (et le type off64_t) n'est
disponible que lorsqu'on compile avec
#define _LARGEFILE64_SOURCE
La fonction lseek64() est disponible depuis la glibc 2.1.
llseek()
Prototype :
loff_t llseek(int fd, loff_t décalage, int origine_décalage);
Le type loff_t est un type signé 64 bits. La fonction de bibliothèque
llseek() est disponible dans la glibc et fonctionne sans définition
particulière. Cependant, les en-têtes de la glibc ne proposent pas de
prototype. Les utilisateurs doivent donc ajouter le prototype ci-dessus, ou
quelque chose d'équivalent, dans leurs propres sources. Lorsque des
utilisateurs se sont plaints à propos de pertes de données à cause d'une
mauvaise compilation de e2fsck(8), la glibc 2.1.3 a ajouté un
avertissement au moment de l'édition de liens
"la fonction llseek peut être dangereuse ; utilisez lseek64 à la
place."
Cela fait que cette fonction est inutilisable si l'on souhaite une
compilation vierge de tout avertissement.
Depuis la version 2.28 de la glibc, ce symbole de fonction n'est plus
disponible pour les applications nouvellement liées.
_llseek()
Sur les architectures 32 bits, c'est l'appel système qui est utilisé par les
fonctions enveloppes de la bibliothèque C pour implémenter toutes les
fonctions ci-dessus. Son prototype est :
int _llseek(int fd, off_t décalage_haut, off_t décalage_bas,
loff_t *résultat, int origine_décalage);
Pour plus de détails, consultez llseek(2).
Les systèmes 64 bits n'ont pas besoin de l'appel système _llseek(). Ils
peuvent en effet utiliser l'appel système lseek(2) qui prend en charge
les décalages de fichier 64 bits.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
| Interface | Attribut | Valeur
|
|
lseek64()
| Sécurité des threads | MT-Safe
|
NOTES
lseek64() est une des fonctions définies dans la spécification LFS (Large
File Summit) qui a été achevée en 1996. Cette spécification avait pour but
de fournir une prise en charge transitionnelle qui devait permettre aux
applications sur des systèmes 32 bits d'accéder aux fichiers dont la taille
dépassait la valeur qui pouvait être représentée par le type off_t
32 bits. Comme indiqué plus haut, ce symbole est exposé par les fichiers
d'en-têtes si la macro de test de fonctionnalité _LARGEFILE64_SOURCE est
elle-même définie. Alternativement, sur un système 32 bits, le symbole
lseek devient un alias de lseek64 si la macro _FILE_OFFSET_BITS est
définie avec la valeur 64.
VOIR AUSSI
llseek(2), lseek(2)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>,
Frédéric Hantrais <fhantrais@gmail.com>
et
Lucien Gentis <lucien.gentis@waika9.com>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- lseek()
-
- lseek64()
-
- llseek()
-
- _llseek()
-
- ATTRIBUTS
-
- NOTES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:19 GMT, September 19, 2025