Voltar à lista
Linux x86_64Arquivos & E/S#8

lseek

Reposiciona o cursor de leitura/escrita de um descritor de arquivo.

Descrição

Permite pular para qualquer posição do arquivo (inclusive além do fim, criando um 'buraco' esparso na próxima escrita) sem ler/escrever dados. Não se aplica a pipes e a maioria dos sockets, que não são posicionáveis.

Header: unistd.hman 2

Assinatura

off_t lseek(int fd, off_t offset, int whence);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo.
offsetoff_tDeslocamento, interpretado conforme `whence`.
whenceintSEEK_SET, SEEK_CUR, SEEK_END, ou SEEK_DATA/SEEK_HOLE.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdint
rsiargumento 2offsetoff_t
rdxargumento 3whenceint

Valor de retorno

A nova posição (em bytes, desde o início do arquivo) em sucesso; (off_t) -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENXIO(6)
Dispositivo ou endereço inexistente.
ESPIPE(29)
Seek inválido (descritor não posicionável, ex.: pipe).
EOVERFLOW(75)
Valor grande demais para o tipo de dado de destino.

Relacionadas