Linux x86_64Rede & sockets#48
shutdown
Encerra parcial ou totalmente a comunicação em um socket conectado, sem fechar o descritor.
Descrição
Permite encerrar apenas o lado de envio (SHUT_WR, produzindo EOF do lado remoto e liberando a leitura de dados já em trânsito), apenas o de recepção, ou ambos — diferente de `close`, que também libera o descritor.
Header:
sys/socket.hman 2Assinatura
int shutdown(int sockfd, int how);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| sockfd | int | Descritor do socket. |
| how | int | SHUT_RD, SHUT_WR ou SHUT_RDWR. |
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 | howint |
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.