Syntaxe
off_t lseek(int fildes, off_t offset, int whence);
|
Paramètres
Nom |
Description |
fildes |
Ce paramètre permet d'indiquer l'identificateur du fichier Handle. |
offset |
Ce paramètre permet d'indiquer la position du pointeur dans le fichier. |
whence |
Ce paramètre permet d'indiquer le mode de positionnement combiné du fichier : |
SEEK_CUR |
Cette constante indique un positionnement à partir de la position courante dans le fichier. |
SEEK_END |
Cette valeur indique un positionnement à partir de la position de la fin dans le fichier. |
SEEK_SET |
Cette valeur indique un positionnement à partir de la position du début dans le fichier. |
Retour
Valeur |
Description |
0 ou supérieur |
Ces valeurs permettent d'indiquer le déplacement effectué en octets. |
-1 |
Cette valeur permet d'indiquer qu'une erreur s'est produite et qu'il n'a pas été possible de positionner le pointeur. Dans ce cas, il sera possible d'obtenir des informations supplémentaires en consultant la variable errno. |
Description
Cette fonction permet d'effectuer le positionnement du pointeur de fichier Handle.
Remarques
- Les codes d'erreurs retournés par la variable «errno» correspondent généralement à ceci :
EBADF |
Cette constante permet d'indiquer que le descripteur de fichier est invalide. |
EINVAL |
Cette constante permet d'indiquer que le paramètre est invalide. |
EOVERFLOW |
Cette constante permet d'indiquer que la valeur est trop large pour être entreposé dans le type de données. |
ESPIPE |
Cette constante permet d'indiquer que le positionnement est invalide. |
- Les constantes symboliques SEEK_SET, SEEK_CUR et SEEK_END sont définies dans le fichier d'entête unistd.h.
- Le comportement de la fonction lseek() sur les périphériques incapables de rechercher est défini par la mise en oeuvre. La valeur du déplacement de fichier associé à un tel périphérique
n'est pas définie.
- La fonction lseek() doit permettre de définir le décalage du fichier au-delà de la fin des données existantes dans le fichier. Si des données sont écrites ultérieurement à ce stade,
les lectures ultérieures de données dans l'espace doivent retourner des octets avec la valeur 0 jusqu'à ce que les données soient réellement écrites dans l'espace.
- La fonction lseek() ne doit pas, à elle seule, étendre la taille d'un fichier.
- Si le paramètre fildes fait référence à un objet de mémoire partagée, le résultat de la fonction lseek() n'est pas spécifié.
- Si le paramètre fildes fait référence à un objet mémoire typé, le résultat de la fonction lseek() n'est pas spécifié.
- En cas de réussite, le déplacement est retourné comme résultat, mesuré en octets depuis le début du fichier. Sinon, (off_t) -1 est renvoyé, et errno doit être positionné pour indiquer l'erreur et le déplacement de fichier doit rester inchangé.
Dernière mise à jour : Dimanche, le 10 décembre 2017