Linux x86_64Rede & sockets#55
getsockopt
Consulta o valor atual de uma opção de socket.
Descrição
Contraparte de leitura de `setsockopt`.
Header:
sys/socket.hman 2Assinatura
int getsockopt(
int sockfd,
int level,
int optname,
void * optval,
socklen_t * optlen
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| sockfd | int | Descritor do socket. |
| level | int | Nível de protocolo da opção. |
| optname | int | Nome da opção dentro do nível. |
| optval | void * | Recebe o valor atual da opção. |
| optlen | socklen_t * | Tamanho de `optval`; 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 | levelint |
| rdx | argumento 3 | optnameint |
| r10 | argumento 4 | optvalvoid * |
| r8 | argumento 5 | optlensocklen_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).
- ENOPROTOOPT(92)
- Opção de protocolo indisponível.
- ENOTSOCK(88)
- Operação de socket em descritor que não é um socket.