Scroll to navigation

READDIR(2) Manual do Programador Linux READDIR(2)

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)
22/07/1995 Linux 1.3.6