NOME¶
readdir - lê a entrada do diretório
SINOPSE¶
#include <unistd.h>
#include <linux/dirent.h>
#include <linux/unistd.h>
_syscall3(int, readdir, uint, fd, struct dirent *, dirp, uint, count);
int readdir(unsigned int fd, struct dirent *dirp, unsigned int count);
DESCRIÇÃO¶
Está não é a função que você possa se
interessar. Veja em
readdir(3) para a interface POSIX adequada com a
biblioteca C. Esta página documenta a interface de chamada bare do
kernel, que pode ser alterado, e substituído por
getdents(2).
readdir lê uma estrutura
dirent a partir do
diretório apontado por
fd para a área de memória
apontada por
dirp. O parãmetro
count é ignorado;
no máximo uma strutura dirent é lida.
A estrutura
dirent é declarada como segue:
struct dirent
{
long d_ino; /* inode number */
off_t d_off; /* offset to this dirent */
unsigned short d_reclen; /* length of this d_name */
char d_name [NAME_MAX+1]; /* file name (null-terminated) */
}
d_ino é um número de inode.
d_off é a
distância a partir do início do diretório para esta
dirent.
d_reclen é o tamanho de
d_name, sem contar
o caractere terminador.
d_name é um nome de arquivo com o
caracter terminador nulo.
VALORES RETORNADOS¶
Em caso de sucesso, 1 é retornado. No final do diretório, 0
é retornado. Caso contrário, -1 é retornado, e
errno é selecionado adequadamente.
ERROS¶
- EBADF
- É um descritor de arquivos inválido fd.
- EFAULT
- O argumento aponta para fora da área de endereços do
processo solicitante.
- EINVAL
- O buffer de resultado é muito pequeno.
- ENOENT
- Não encontrado o diretório.
- ENOTDIR
- O descritor de arquivos não se refere para um
diretório.
DE ACORDO COM¶
Esta chamada de sistema é específica do Linux.
VEJA TAMBÉM¶
getdents(2),
readdir(3)
TRADUZIDO POR LDP-BR em 21/08/2000¶
André L. Fassone Canova <lonelywolf@blv.com.br>
(tradução) xxxxxxxxxxxxxxxxxxxxxxxxx <xxx@xxxxxx.xxx.xx>
(revisão)