Voltar à lista
Linux x86_64Arquivos & E/S#18

pwrite64

Escreve em um descritor de arquivo em um deslocamento específico, sem alterar (nem depender d)a posição atual do arquivo.

Descrição

Contraparte de escrita de `pread64`; igualmente atômica em relação à posição do arquivo.

Header: unistd.hman 2

Assinatura

ssize_t pwrite64(int fd, const void * buf, size_t count, off_t offset);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo (deve ser posicionável).
bufconst void *Buffer de origem.
countsize_tNúmero máximo de bytes a escrever.
offsetoff_tDeslocamento absoluto de onde escrever.

Registradores (x86_64)

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

Valor de retorno

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

Códigos de erro (errno)

EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EBADF(9)
Descritor de arquivo inválido.
EFBIG(27)
Arquivo grande demais.
EINVAL(22)
Argumento inválido.
ENOSPC(28)
Sem espaço livre no dispositivo.
ESPIPE(29)
Seek inválido (descritor não posicionável, ex.: pipe).

Relacionadas