Linux x86_64Sistema de arquivos#4
stat
Consulta metadados de um arquivo, referenciado por caminho (tamanho, dono, permissões, timestamps).
Descrição
Segue links simbólicos — para inspecionar o link em si, use `lstat`. Base da função de biblioteca `stat(2)` e do comando `stat(1)`.
Header:
sys/stat.hman 2Nota
Em código novo, `statx` (syscall 332) oferece mais campos (incluindo timestamp de criação, quando suportado pelo sistema de arquivos) e controle mais fino sobre o que é consultado.
Assinatura
int stat(const char * pathname, struct stat * statbuf);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| pathname | const char * | Caminho do arquivo. |
| statbuf | struct stat * | Recebe os metadados do arquivo. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | pathnameconst char * |
| rsi | argumento 2 | statbufstruct stat * |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EACCES(13)
- Permissão negada.
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
- ELOOP(40)
- Excesso de níveis de links simbólicos (loop de symlinks).
- ENAMETOOLONG(36)
- Nome de arquivo/caminho grande demais.
- ENOENT(2)
- Arquivo ou diretório inexistente.
- ENOTDIR(20)
- Não é um diretório.