Voltar à lista
Linux x86_64Sistema de arquivos#262

newfstatat

Como stat, mas resolve o caminho relativo a um descritor de diretório (equivalente ao fstatat da libc).

Descrição

Parte da família *at(); com AT_SYMLINK_NOFOLLOW se comporta como `lstat` relativo, e com AT_EMPTY_PATH pode operar diretamente sobre `dirfd` (equivalente a `fstat`).

man 2Desde o kernel 2.6.16

Assinatura

int newfstatat(
    int dirfd,
    const char * pathname,
    struct stat * statbuf,
    int flags
);

Parâmetros

ParâmetroTipoDescrição
dirfdintDescritor do diretório base, ou AT_FDCWD.
pathnameconst char *Caminho, absoluto, relativo a `dirfd`, ou vazio com AT_EMPTY_PATH.
statbufstruct stat *Recebe os metadados.
flagsintAT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH, AT_NO_AUTOMOUNT.

Registradores (x86_64)

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

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.
ENOENT(2)
Arquivo ou diretório inexistente.
ENOTDIR(20)
Não é um diretório.

Relacionadas