LSEEK64(3)

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

SYNOPSIS
#define _LARGEFILE64_SOURCE
#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 courante ou à la fin du fichier lorsque whence a respectivement la valeur SEEK_SET, SEEK_CUR ou SEEK_END.

Pour plus d'informations, en particulier les valeurs retournées et les erreurs, voir 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 32 bits signé 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 64 bits même si off_t est de 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 est définie comme étant 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 et fonctionne sans définition particulière. Son prototype était fourni par <unistd.h> dans la libc5, mais la glibc ne fournit pas de prototype. Ce qui est une mauvaise idée puisqu'un prototype est nécessaire. Les utilisateurs de cette fonction devraient ajouter le prototype précédent, ou quelque chose d'équivalent, dans leur propre code source. Lorsque des utilisateurs se sont plaint de perte 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.

"the `llseek' function may be dangerous; use `lseek64' instead."

Cela rend cette fonction inutilisable si l'on désire une compilation vierge de tout avertissement.

  _llseek
Toutes les fonctions précédentes sont implémentées avec cet appel système. Son 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, voir la page llseek(2).

VOIR AUSSI
llseek(2), lseek(2), feature_test_macros(7)

TRADUCTION

Ce document est une traduction réalisée par Alain Portal <aportal AT univ-montp2 DOT fr> le 30 mai 2006 et révisée le 17 juillet 2008.

L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 lseek64 ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.