Voltar à lista
Linux x86_64Sistema de arquivos#332

statx

Versão estendida e extensível de stat, com campos adicionais (incluindo timestamp de criação) e controle sobre o que é consultado.

Descrição

Permite pedir explicitamente apenas os campos necessários (via `mask`), o que pode ser mais rápido em alguns sistemas de arquivos de rede, e expõe informação que `stat` não tinha campo para representar, como `stx_btime` (timestamp de criação/'birth time') em sistemas de arquivos que o suportam.

man 2Desde o kernel 4.11

Assinatura

int statx(
    int dirfd,
    const char * pathname,
    int flags,
    unsigned int mask,
    struct statx * statxbuf
);

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.
flagsintAT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH, AT_STATX_SYNC_AS_STAT, entre outras.
maskunsigned intQuais campos são de interesse (STATX_BASIC_STATS, STATX_BTIME, etc.).
statxbufstruct statx *Recebe os metadados solicitados.

Registradores (x86_64)

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

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.
ELOOP(40)
Excesso de níveis de links simbólicos (loop de symlinks).
ENOENT(2)
Arquivo ou diretório inexistente.
ENOTDIR(20)
Não é um diretório.

Relacionadas