GETDENTS(2)

NOMBRE
getdents - obtiene las entradas de un directorio

SINOPSIS
#include <unistd.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);

DESCRIPCIÓN
getdents lee varias estructuras dirent del directorio señalado por el puntero fd en el área de memoria señalada por dirp. El parámetro count es el tamaño del área de memoria.

La estructura dirent se declara de la siguente manera:

    struct dirent
    {
        long d_ino;                 /* número nodo-i */
        off_t d_off;                /* offset al próximo dirent */
        unsigned short d_reclen;    /* longitud de este dirent */
        char d_name [NAME_MAX+1];   /* Nombre del fichero (terminado en null) */
    }

d_ino es un número de nodo-i (inode) d_off es la distancia desde el principio del directorio al comienzo del próximo dirent. d_reclen es el tamaño de todo el dirent. d_name es un nombre de fichero terminado en null.

Esta llamada supersede readdir(2).

VALOR REGRESADO
En caso de éxito de regresa el número de bytes leido. Si se llega al final del directorio se regresa 0. En caso de error -1, y la variable errno se asigna apropiadamente.

ERRORES

EBADF
    Descriptor de fichero inválido. fd.

ENOTDIR
    El descriptor de fichero no se refiere a un directorio.

VÉASE
readdir(2), readdir(3)