Linux |
CentOS 4.8 |
|
fseek(3) |
fseek, fgetpos, fsetpos, ftell, rewind − Accéder à la position courante d’un flux. |
#include <stdio.h> int fseek (FILE *stream, long
offset, int whence); |
La fonction fseek fixe l’indicateur de position du flux pointé par stream. La nouvelle position, mesurée en octets, est obtenue en additionnant offset octets au point de départ indique par whence. Si whence vaut SEEK_SET, SEEK_CUR, ou SEEK_END, le point de départ correspond respectivement au début du fichier, à la position actuelle, ou à la fin du fichier. Un appel réussi à fseek efface l’indicateur de fin de fichier pour le flux, et annule les effets de toute fonction ungetc(3) précédente sur le même flux. La fonction ftell lit la valeur de l’indicateur de position pour le flux pointé par stream. La fonction rewind ramène l’indicateur de position du flux pointé par stream au début du fichier. C’est l’équivalent de : |
(void)fseek(stream, 0L, SEEK_SET) |
sauf que l’indicateur d’erreur du flux est également effacé. (voir clearerr(3)). Les fonctions fgetpos et fsetpos sont des alternatives à ftell et fseek (avec whence valant SEEK_SET), en fixant, ou en mémorisant la valeur de l’indicateur de position du fichier dans l’objet référencé par pos. Sur certains systèmes non-UNIX, l’objet fpos_t peut être un objet complexe, et ces routines peuvent être les seules méthodes possibles pour repositionner un flux de texte de manière portable. |
La fonction rewind ne renvoie pas de valeur. Si elles réussissent totalement, fgetpos, fseek, fsetpos renvoient 0, et ftell renvoie la position actuelle. Sinon, elles renvoient −1 et la variable globale errno contient le code d’erreur. |
EBADF |
Le flux stream n’est pas positionnable. |
||
EINVAL |
L’argument whence dans l’appel fseek n’était ni SEEK_SET, ni SEEK_END, ni SEEK_CUR. |
Les fonctions fgetpos, fseek, fsetpos, et ftell peuvent également, en échec, positionner errno sur n’importe quelle erreur indiquée par les routines fflush(3), fstat(2), lseek(2), et malloc(3). |
Les fonctions fgetpos, fsetpos, fseek, ftell, et rewind sont conformes a ANSI X3.159-1989 (‘‘ANSI C’’). |
lseek(2), fseeko(3) |
Christophe Blaess, 1997. |
fseek(3) |