Linux x86_64Sistema de arquivos#87
unlink
Remove um nome (hard link) do sistema de arquivos; o arquivo em si só é apagado quando o último link e o último descritor aberto desaparecem.
Descrição
É o que permite o idioma clássico de criar um arquivo temporário, chamar `unlink` imediatamente, e continuar usando o descritor já aberto — o espaço em disco só é liberado quando o processo fecha o descritor.
Header:
unistd.hman 2Assinatura
int unlink(const char * pathname);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pathname | const char * | Caminho a remover. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pathnameconst char * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EBUSY(16)
- Dispositivo ou recurso ocupado.
- EISDIR(21)
- É um diretório (operação exige um arquivo comum).
- ENOENT(2)
- Arquivo ou diretório inexistente.
- ENOTDIR(20)
- Não é um diretório.
- EPERM(1)
- Operação não permitida (falta de privilégio).
- EROFS(30)
- Sistema de arquivos somente leitura.