LSEEK
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
VALEUR RENVOYÉE
ERREURS
CONFORMITÉ
RESTRICTIONS
NOTES
VOIR AUSSI
TRADUCTION
NOM
lseek - Positionner la tête de lecture/écriture dans un fichier.
SYNOPSIS
DESCRIPTION
La fonction
lseek
place la tête de lecture/écriture à la position
offset
dans le fichier associé au descripteur
fildes
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.
Si des données sont écrites à cet emplacement, une lecture ultérieure
de l'espace intermédiaire retournera des zéros (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 -1 est renvoyée, et
errno
contient le code d'erreur.
ERREURS
- EBADF
-
Fildes
n'est pas un descripteur de fichier ouvert.
- ESPIPE
-
Fildes
est associée à un tube (pipe), une socket, ou une file FIFO.
- EINVAL
-
Whence
est invalide.
CONFORMITÉ
SVr4, POSIX, BSD 4.3
RESTRICTIONS
Certains périphériques ne permettent pas de positionnement direct,
POSIX ne précise pas le comportement à adopter dans ce cas.
Restrictions spécifiques à Linux : L'utilisation de lseek sur un
périphérique tty renvoie ESPIPE.
Les autres systèmes renvoient le nombre de caractères écrits en utilisant
SEEK_SET pour positionner le compteur.
Certains périphériques, comme /dev/null, ne renvoie pas l'erreur
ESPIPE, mais renvoie un pointeur dont la valeur est indéfinie.
NOTES
Lors de la conversion d'un ancien code, substituez les valeurs 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 fichiers 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
TRADUCTION
Christophe Blaess, 1996-2003.
|