FSEEK(3)

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

SINÓPSE
#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 seleciona 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 é selecionado 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 RETORNADOS
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, é devolvdio -1 e a variável global errno é selecionada adequadamente.

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).

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

VEJA TAMBÉM
lseek(2).

TRADUZIDO POR LDP-BR em 21/08/2000.

  Tradução:
Rubens de Jesus Nogueira <darkseid99@usa.net>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>