FSEEK(3)

NOME
fgetpos, fseek, fsetpos, ftell, rewind - reposiciona um fluxo

SINOPSE
#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);

DESCRIÇÃO
A função fseek seta o indicador de posição de arquivo do fluxo apontado por stream. A nova posição, medida em bytes, é obtida pelo acréscimo de offset bytes à posição especificada por whence. Se whence é setado para SEEK_SET, SEEK_CUR, ou SEEK_END, o offset é relativo ao início do arquivo, ao indicador de posição corrente, ou ao fim de arquivo, respectivamente. Uma chamada bem-sucedida à função fseek limpa o indicador de fim de arquivo para o fluxo e desfaz qualquer efeito da função ungetc(3) no mesmo fluxo.

A função ftell obtém o valor corrente do indicador de posição de arquivo do fluxo apontado por stream.

A função rewind seta o indicador de posição de arquivo do fluxo apontado por stream para o início do arquivo. É equivalente a:

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

exceto pelo fato de que o indicador de erro do fluxo também é limpo (veja clearerr(3)).

As funções fgetpos e fsetpos são interfaces alternativas equivalentes a ftell e fseek (com whence setado para SEEK_SET), configurando e armazenando o valor corrente do offset do arquivo do objeto referenciado por pos. Em alguns sistemas não-UNIX, um objeto fpos_t pode ser um objeto complexo e estas rotinas podem ser a única maneira portável de reposicionar um fluxo de texto.

VALORES DE RETORNO
A função rewind não retorna valor. Em caso de término bem-sucedido, fgetpos, fseek, fsetpos retornam 0, e ftell retorna o offset corrente. Caso contrário, -1 é retornado e a variável global errno é setada para indicar o erro.

ERROS

EBADF
    O fluxo especificado não é um fluxo vasculhável.

EINVAL
    O argumento whence de fseek não era SEEK_SET, SEEK_END, ou SEEK_CUR.

As funções fgetpos, fseek, fsetpos, e ftell também podem falhar e setar errno para qualquer um dos erros especificados para as rotinas fflush(3), fstat(2), lseek(2), e malloc(3).

VEJA TAMBÉM
lseek(2)

PADRÕES
As funções fgetpos, fsetpos, fseek, ftell, e rewind estão em conformidade com ANSI X3.159-1989 (``ANSI C'').

TRADUÇÃO PARA A LÍNGUA PORTUGUESA
RUBENS DE JESUS NOGUEIRA <darkseid99@usa.net> (tradução) XXXXXX XX XXXXX XXXXXXXX <xxxxxxxxxx@xxx.xxx> (revisão)