GETDENTS(2)

NOME
getdents - obtém as entradas de diretórios

SINOPSE
#include <unistd.h>
#include <linux/types.h>
#include <linux/dirent.h>
#include <linux/unistd.h>

_syscall3(int, getdents, uint, fd, struct dirent *, dirp, uint, count);

int getdents(unsigned int fd, struct dirent *dirp, unsigned int count);

DESCRIÇÃO
getdents lê várias estruturas dirent a partir do diretório apontado por fd dentro da área de memória apontada por dirp. O parãmetro count é o tamanho da área de memória.

A estrutura dirent é declarada como segue:

    struct dirent
    {
        long d_ino;                 /* inode number */
        off_t d_off;                /* offset to next dirent */
        unsigned short d_reclen;    /* length of this dirent */
        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 o iníco do próximo dirent. d_reclen é o tamanho da completa dirent. d_name é um nome de arquivo vazio.

Esta chamada substitui readdir(2).

VALORES RETORNADOS
Em caso de sucesso, o número de bytes lidos é retornado. No final do diretório, 0 é retornado. Caso contrário, -1 is retornado, e errno é selecionado apropriadamente.

ERROS

EBADF
    Descritor de arquivos inválido fd.

EFAULT
    O argumento aponta para o espaço de enderenço dp processo solicitante.

EINVAL
    O buffer de resultado é muito pequeno.

ENOENT
    Sem aquele diretório.

ENOTDIR
    O descritor de arquivos não se refere para um diretório.

DE ACORDO COM
SVr4, SVID. Na documentação SVr4 condições de erro adicionais ENOLINK, EIO.

VEJA TAMBÉM
readdir(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)