Voltar à lista
Linux x86_64Rede & sockets#51

getsockname

Consulta o endereço local ao qual um socket está associado.

Descrição

Útil, por exemplo, para descobrir qual porta efêmera o kernel escolheu quando `bind` foi chamado com porta 0.

Header: sys/socket.hman 2

Assinatura

int getsockname(int sockfd, struct sockaddr * addr, socklen_t * addrlen);

Parâmetros

ParâmetroTipoDescrição
sockfdintDescritor do socket.
addrstruct sockaddr *Recebe o endereço local.
addrlensocklen_t *Tamanho de `addr`; atualizado com o tamanho real.

Registradores (x86_64)

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

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

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).
ENOTSOCK(88)
Operação de socket em descritor que não é um socket.

Relacionadas