Voltar à lista
Linux x86_64Arquivos & E/S#1

write

Escreve até count bytes de um buffer para um descritor de arquivo, avançando a posição do arquivo.

Descrição

Contraparte de `read`. Também pode fazer escrita parcial (short write) sem erro; código robusto deve verificar o valor de retorno e repetir se necessário.

Header: unistd.hman 2

Assinatura

ssize_t write(int fd, const void * buf, size_t count);

Parâmetros

ParâmetroTipoDescrição
fdintDescritor de arquivo a escrever.
bufconst void *Buffer de origem.
countsize_tNúmero máximo de bytes a escrever.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdint
rsiargumento 2bufconst void *
rdxargumento 3countsize_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.
EFAULT(14)
Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
EFBIG(27)
Arquivo grande demais.
EINTR(4)
Chamada interrompida por um sinal.
EIO(5)
Erro de E/S físico.
ENOSPC(28)
Sem espaço livre no dispositivo.
EPIPE(32)
Pipe quebrado (sem leitor do outro lado).

Relacionadas

Equivalente em Windows Win32