Linux x86_64Rede & sockets#52
getpeername
Consulta o endereço do par remoto ao qual um socket está conectado.
Descrição
Contraparte de `getsockname` para o lado remoto da conexão.
Header:
sys/socket.hman 2Assinatura
int getpeername(int sockfd, struct sockaddr * addr, socklen_t * addrlen);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| sockfd | int | Descritor do socket. |
| addr | struct sockaddr * | Recebe o endereço remoto. |
| addrlen | socklen_t * | Tamanho de `addr`; atualizado com o tamanho real. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | sockfdint |
| rsi | argumento 2 | addrstruct sockaddr * |
| rdx | argumento 3 | addrlensocklen_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.
- ENOTCONN(107)
- Socket não conectado.
- ENOTSOCK(88)
- Operação de socket em descritor que não é um socket.