Linux x86_64Sistema de arquivos#217
getdents64
Como getdents, mas usa um formato de registro com inode de 64 bits.
Descrição
Forma recomendada de ler entradas de diretório em código novo; base de `readdir(3)` no glibc moderno.
man 2Desde o kernel 2.4.0
Assinatura
int getdents64(
unsigned int fd,
struct linux_dirent64 * dirp,
unsigned int count
);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| fd | unsigned int | Descritor aberto sobre um diretório. |
| dirp | struct linux_dirent64 * | Buffer de saída para as entradas. |
| count | unsigned int | Tamanho de `dirp`. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | fdunsigned int |
| rsi | argumento 2 | dirpstruct linux_dirent64 * |
| rdx | argumento 3 | countunsigned int |
Valor de retorno
Número de bytes lidos (0 indica fim do diretório) em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EBADF(9)
- Descritor de arquivo inválido.
- EFAULT(14)
- Endereço de memória inválido (ponteiro fora do espaço de endereçamento válido).
- EINVAL(22)
- Argumento inválido.
- ENOTDIR(20)
- Não é um diretório.