LSEEK64(3)

NOM
lseek64 - Positionner la tête de lecture/écriture dans un fichier (version 64 bits)

SYNOPSIS
#define _LARGEFILE64_SOURCE /* Consultez feature_test_macros(7) */
#include <sys/types.h>
#include <unistd.h>

off64_t lseek64(int fd, off64_t offset, int whence);

DESCRIPTION
Les fonctions de la famille lseek(2) repositionnent la tête de lecture d'un fichier ouvert associé au descripteur de fichier fd à offset octets relativement au début du fichier, à la position actuelle et à la fin du fichier lorsque whence 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(2), lseek64(), llseek(2) et l'appel système brut _llseek(2).

  lseek
Prototype :

off_t lseek(int fd, off_t offset, int whence);

lseek(2) utilise le type off_t. C'est un type signé sur 32 bits pour les architectures 32 bits, à moins que l'on compile avec

#define _FILE_OFFSET_BITS 64

auquel cas c'est un type 64 bits signé.

  lseek64
Prototype :

off64_t lseek64(int fd, off64_t offset, int whence);

La routine de bibliothèque lseek64() utilise un type sur 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, et elle est définie comme un alias de llseek().

  llseek
Prototype :

loff_t llseek(int fd, loff_t offset, int whence);

Le type loff_t est un type 64 bits signé. La routine de bibliothèque llseek est disponible dans la libc5 et dans la glibc, mais sans définition particulière. Son prototype était donné dans <unistd.h> pour la libc5, mais la glibc ne propose pas de prototype. Ceci n'est pas bon puisqu'un prototype est nécessaire. Les utilisateurs devraient ajouter le prototype ci-dessus, ou quelque chose d'équivalent dans leurs sources. Lorsque des utilisateurs se plaignaient à propos de données perdues à 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.

  _llseek
Toutes les fonctions ci-dessus sont implémentées avec cet appel système. Le prototype est le suivant :

int _llseek(int fd, off_t offset_hi, off_t offset_lo,
            loff_t *result, int whence);

Pour plus de détails, consultez llseek(2).

ATTRIBUTS

  Multithreading (voir pthreads(7))
La fonction lseek64() est sûre dans un contexte multithread.

VOIR AUSSI
llseek(2), lseek(2)

COLOPHON
Cette page fait partie de la publication 3.70 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».