FSEEK(3)

NOM
fseek, fgetpos, fsetpos, ftell, rewind - Acceder a la position courante d'un flux.

SYNOPSIS
#include <stdio.h>

int fseek (FILE *stream, long offset, int whence);
long ftell (FILE *stream);
void rewind (FILE *stream);
int fgetpos (FILE *stream, fpos_t *pos);
int fsetpos (FILE *stream, fpos_t *pos);

DESCRIPTION
La fonction fseek fixe l'indicateur de position du flux pointe par stream. La nouvelle position, mesuree en octets, est obtenue en additionnant offset octets au point de depart indique par whence. Si whence vaut SEEK_SET, SEEK_CUR, ou SEEK_END, le point de depart correspond respectivement au debut du fichier, a la position actuelle, ou a la fin du fichier. Un appel reussi a fseek efface l'indicateur de fin de fichier pour le flux, et annule les effets de toute fonction ungetc(3) precedente sur le meme flux.

La fonction ftell lit la valeur de l'indicateur de position pour le flux pointe par stream.

La fonction rewind ramene l'indicateur de position du flux pointe par stream au debut du fichier. C'est l'equivalent de :

    (void)fseek(stream, 0L, SEEK_SET)

sauf que l'indicateur d'erreur du flux est egalement efface. (voir clearerr(3)).

Les fonctions fgetpos et fsetpos sont des alternatives a ftell et fseek (avec whence valant SEEK_SET), en fixant, ou en memorisant la valeur de l'indicateur de position du fichier dans l'objet reference par pos. Sur certains systemes non-UNIX, l'objet fpos_t peut etre un objet complexe, et ces routines peuvent etre les seules methodes possibles pour repositionner un flux de texte de maniere portable.

VALEUR RENVOYEE
La fonction rewind ne renvoie pas de valeur. Si elles reussissent 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.

ERREURS

EBADF
    Le flux stream n'est pas positionnable.

EINVAL
    L'argument whence dans l'appel fseek n'etait ni SEEK_SET, ni SEEK_END, ni SEEK_CUR.

Les fonctions fgetpos, fseek, fsetpos, et ftell peuvent egalement, en echec, positionner errno sur n'importe quelle erreur indiquee par les routines fflush(3), fstat(2), lseek(2), et malloc(3).

VOIR AUSSI
lseek(2)

STANDARDS
Les fonctions fgetpos, fsetpos, fseek, ftell, et rewind sont conformes a ANSI C3.159-1989 (``ANSI C'').