Loading

NOM

       lseek - Positionner la tête de lecture/écriture dans un fichier

SYNOPSIS

       #include <sys/types.h>
       #include <unistd.h>

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

       La  fonction  lseek()  place  la tête de lecture/écriture à la position
       offset dans  le  fichier  associé  au  descripteur  fd  en  suivant  la
       directive whence ainsi :

       SEEK_SET
              La tête est placée à offset octets depuis le début du fichier.

       SEEK_CUR
              La tête de lecture/écriture est avancée de offset octets.

       SEEK_END
              La tête est placée à la fin du fichier plus offset octets.

       La fonction lseek() permet de placer la tête au‐delà de la fin actuelle
       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  zéros  (« \0 »)
       jusqu’à ce que d’autres données y soient écrites.

VALEUR RENVOYÉE

       lseek(),  s’il réussit, renvoie le nouvel emplacement, mesuré en octets
       depuis le début du fichier. En cas d’échec, la  valeur  (off_t) -1  est
       renvoyée, et errno contient le code d’erreur.

ERREURS

       EBADF  fd n’est pas un descripteur de fichier ouvert.

       EINVAL whence  n’est  ni SEEK_SET, ni SEEK_CUR, ni SEEK_END, ou bien la
              position  demandée  serait  négative,  ou  après  la  fin   d’un
              périphérique.

       EOVERFLOW
              La  position résultante dans le fichier ne peut être représentée
              dans un off_t

       ESPIPE fd est associé à un tube (pipe), une socket, ou une file FIFO.

CONFORMITÉ

       SVr4, BSD 4.3, POSIX.1-2001.

NOTES

       L’utilisation du mot whence ici ne correspond  pas  à  une  utilisation
       correcte  en  anglais,  mais  ce  mot  est  conservé  pour  des raisons
       historiques.

       Certains périphériques ne  permettent  pas  de  positionnement  direct,
       POSIX ne précise quels périphériques doivent gérer lseek().

       Sous  Linux,  l’utilisation  de lseek() sur un périphérique tty renvoie
       ESPIPE.

       Lors de la conversion d’un  ancien  code,  substituez  les  valeurs  de
       whence par les macros suivantes :

       ancien   nouveau
       0        SEEK_SET
       1        SEEK_CUR
       2        SEEK_END
       L_SET    SEEK_SET
       L_INCR   SEEK_CUR
       L_XTND   SEEK_END

       SVr1-3 renvoie un long à la place d’un off_t, BSD renvoie un int.

       Notez  que  les descripteurs de fichier dupliqués par dup(2) ou fork(2)
       partagent le même pointeur de position. Ainsi  le  déplacement  sur  de
       tels fichiers peut conduire à des problèmes d’accès concurrents.

VOIR AUSSI

       dup(2), fork(2), open(2), fseek(3), lseek64(3), posix_fallocate(3)

COLOPHON

       Cette  page  fait  partie  de  la  publication 3.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

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