Voltar à lista
Linux x86_64Rede & sockets#47

recvmsg

Recebe uma mensagem de um socket em um vetor de buffers, incluindo dados de controle (ancillary data).

Descrição

Contraparte de leitura de `sendmsg`, incluindo a recepção de descritores de arquivo enviados via SCM_RIGHTS.

Header: sys/socket.hman 2

Assinatura

ssize_t recvmsg(int sockfd, struct msghdr * msg, int flags);

Parâmetros

ParâmetroTipoDescrição
sockfdintDescritor do socket.
msgstruct msghdr *Recebe o vetor de buffers preenchido, endereço de origem e dados de controle.
flagsintMSG_DONTWAIT, MSG_PEEK, MSG_WAITALL, etc.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1sockfdint
rsiargumento 2msgstruct msghdr *
rdxargumento 3flagsint

Valor de retorno

Número de bytes recebidos 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.
ECONNRESET(104)
Conexão resetada pelo par (peer).
EINTR(4)
Chamada interrompida por um sinal.
ENOTCONN(107)
Socket não conectado.

Relacionadas

Equivalente em Windows Win32