Voltar à lista
Linux x86_64Sistema de arquivos#263

unlinkat

Como unlink (ou rmdir, com AT_REMOVEDIR), mas resolve o caminho relativo a um descritor de diretório.

Descrição

Parte da família *at(); unifica remoção de arquivos e diretórios em uma única syscall selecionada por flag.

man 2Desde o kernel 2.6.16

Assinatura

int unlinkat(int dirfd, const char * pathname, int flags);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho, absoluto ou relativo a `dirfd`.
flagsint0 ou AT_REMOVEDIR (para remover um diretório, como rmdir).

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1dirfdint
rsiargumento 2pathnameconst char *
rdxargumento 3flagsint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EBADF(9)
Descritor de arquivo inválido.
EBUSY(16)
Dispositivo ou recurso ocupado.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOTEMPTY(39)
Diretório não vazio.

Relacionadas