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âmetro | Tipo | Descrição |
|---|---|---|
| dirfd | int | Descritor do diretório base, ou AT_FDCWD. |
| pathname | const char * | Caminho, absoluto, relativo a `dirfd`, ou vazio com AT_EMPTY_PATH. |
| flags | int | AT_SYMLINK_NOFOLLOW, AT_EMPTY_PATH, AT_STATX_SYNC_AS_STAT, entre outras. |
| mask | unsigned int | Quais campos são de interesse (STATX_BASIC_STATS, STATX_BTIME, etc.). |
| statxbuf | struct statx * | Recebe os metadados solicitados. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | dirfdint |
| rsi | argumento 2 | pathnameconst char * |
| rdx | argumento 3 | flagsint |
| r10 | argumento 4 | maskunsigned int |
| r8 | argumento 5 | statxbufstruct 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.