Linux x86_64Arquivos & E/S#3
close
Fecha um descritor de arquivo, liberando-o para reutilização.
Descrição
Se este era o último descritor referenciando a file description subjacente, quaisquer locks são liberados e, para arquivos deletados sem outros nomes, o espaço em disco é finalmente liberado.
Header:
unistd.hman 2Atenção
Um erro retornado por `close` (ex.: por falha de flush em sistemas de arquivos de rede) já significa que o descritor foi liberado — não se deve chamar `close` novamente após um erro, mesmo que os dados não tenham sido persistidos com segurança.
Assinatura
int close(int fd);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| fd | int | Descritor de arquivo a fechar. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | fdint |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EBADF(9)
- Descritor de arquivo inválido.
- EINTR(4)
- Chamada interrompida por um sinal.
- EIO(5)
- Erro de E/S físico.
- ENOSPC(28)
- Sem espaço livre no dispositivo.
- EDQUOT(122)
- Cota de disco excedida.