Voltar à lista
Linux x86_64Arquivos & E/S#295

preadv

Combina pread64 e readv: leitura vetorizada a partir de um deslocamento específico, sem afetar a posição do arquivo.

Descrição

Útil para operações concorrentes que precisam tanto de I/O vetorizado quanto de posicionamento explícito.

man 2Desde o kernel 2.6.30

Assinatura

ssize_t preadv(int fd, const struct iovec * iov, int iovcnt, off_t offset);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo (deve ser posicionável).
iovconst struct iovec *Vetor de buffers de destino.
iovcntintNúmero de elementos em `iov`.
offsetoff_tDeslocamento absoluto de onde ler.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdint
rsiargumento 2iovconst struct iovec *
rdxargumento 3iovcntint
r10argumento 4offsetoff_t

Valor de retorno

Número total de bytes lidos em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
EIO(5)
Erro de E/S físico.
ESPIPE(29)
Seek inválido (descritor não posicionável, ex.: pipe).

Relacionadas