Voltar à lista
Linux x86_64Sistema de arquivos#439

faccessat2

Como faccessat, mas com suporte real a AT_SYMLINK_NOFOLLOW para checar permissões sem seguir links simbólicos.

Descrição

Corrige a mesma lacuna que `fchmodat2` corrige para `fchmodat`: a `faccessat` original nunca implementou de fato essa flag no kernel.

man 2Desde o kernel 5.8

Assinatura

int faccessat2(int dirfd, const char * pathname, int mode, int flags);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho, absoluto ou relativo a `dirfd`.
modeintF_OK, R_OK, W_OK, X_OK.
flagsintAT_EACCESS, AT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH.

Registradores (x86_64)

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

Valor de retorno

0 se o acesso seria permitido; -1 caso contrário, com errno definido.

Códigos de erro (errno)

EACCES(13)
Permissão negada.
EBADF(9)
Descritor de arquivo inválido.
EINVAL(22)
Argumento inválido.
ENOENT(2)
Arquivo ou diretório inexistente.

Relacionadas