off_t lseek(int fd, off_t offset, int whence);
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.
Certains périphériques ne permettent pas de positionnement direct, POSIX ne précise pas quels périphériques doivent accepter 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 constantes 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.
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 10 octobre 1996 et révisée le 24 juin 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 2 lseek ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 24 juin 2008