lseek64(3) Library Functions Manual lseek64(3) NOM lseek64 - Positionner la tete de lecture/ecriture dans un fichier (version 64 bits) BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #define _LARGEFILE64_SOURCE /* Consultez feature_test_macros(7) */ #include #include off64_t lseek64(int fd, off64_t decalage, int origine_decalage); DESCRIPTION Les fonctions de la famille lseek() repositionnent la tete de lecture du fichier ouvert associe au descripteur de fichier fd a decalage octets relativement au debut du fichier, a la position actuelle ou a la fin du fichier lorsque origine_decalage a respectivement la valeur SEEK_SET, SEEK_CUR ou SEEK_END. Pour plus de details sur les valeurs renvoyees 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 bibliotheque C lseek() utilise le type off_t. C'est un type signe 32 bits pour les architectures 32 bits, a moins que l'on compile avec #define _FILE_OFFSET_BITS 64 auquel cas c'est un type signe 64 bits. lseek64() Prototype : off64_t lseek64(int fd, off64_t decalage, int origine_decalage); La fonction de bibliotheque lseek64() utilise un type 64 bits meme 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 decalage, int origine_decalage); Le type loff_t est un type signe 64 bits. La fonction de bibliotheque llseek() est disponible dans la glibc et fonctionne sans definition particuliere. Cependant, les en-tetes de la glibc ne proposent pas de prototype. Les utilisateurs doivent donc ajouter le prototype ci-dessus, ou quelque chose d'equivalent, dans leurs propres sources. Lorsque des utilisateurs se sont plaints a propos de pertes de donnees a cause d'une mauvaise compilation de e2fsck(8), la glibc 2.1.3 a ajoute un avertissement au moment de l'edition de liens "la fonction llseek peut etre dangereuse ; utilisez lseek64 a 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 liees. _llseek() Sur les architectures 32 bits, c'est l'appel systeme qui est utilise par les fonctions enveloppes de la bibliotheque C pour implementer toutes les fonctions ci-dessus. Son prototype est : int _llseek(int fd, off_t decalage_haut, off_t decalage_bas, loff_t *resultat, int origine_decalage); Pour plus de details, consultez llseek(2). Les systemes 64 bits n'ont pas besoin de l'appel systeme _llseek(). Ils peuvent en effet utiliser l'appel systeme lseek(2) qui prend en charge les decalages de fichier 64 bits. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |lseek64() | Securite des threads | MT-Safe | +---------------------------------+--------------------------+---------+ NOTES lseek64() est une des fonctions definies dans la specification LFS (Large File Summit) qui a ete achevee en 1996. Cette specification avait pour but de fournir une prise en charge transitionnelle qui devait permettre aux applications sur des systemes 32 bits d'acceder aux fichiers dont la taille depassait la valeur qui pouvait etre representee par le type off_t 32 bits. Comme indique plus haut, ce symbole est expose par les fichiers d'en-tetes si la macro de test de fonctionnalite _LARGEFILE64_SOURCE est elle-meme definie. Alternativement, sur un systeme 32 bits, le symbole lseek devient un alias de lseek64 si la macro _FILE_OFFSET_BITS est definie avec la valeur 64. VOIR AUSSI llseek(2), lseek(2) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot , Frederic Hantrais et Lucien Gentis Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 lseek64(3)