Voltar à lista
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âmetroTipoDescrição
fdunsigned intDescritor aberto sobre um diretório.
dirpstruct linux_dirent64 *Buffer de saída para as entradas.
countunsigned intTamanho de `dirp`.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1fdunsigned int
rsiargumento 2dirpstruct linux_dirent64 *
rdxargumento 3countunsigned 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.

Relacionadas