READDIR(2)

NOM
readdir - Lire une entree de repertoire.

SYNOPSIS
#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);

DESCRIPTION
Cette fonction n'est normalement pas interessante pour les programmeurs. Utiliser readdir(3) pour les fonctionnalitees conformes POSIX. Cette page documente l'interface de l'appel systeme bas niveau, qui peut changer, et qui est remplacee par getdents(2).

readdir lit une structure dirent depuis le repertoire pointe par fd et la place en memoire dans la zone pointee par dirp. Le parametre count est ignore, au plus une structure dirent est lue.

La structure dirent est declaree comme suit :

    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 est un numero d'i-node. d_off est la distance entre le debut du repertoire et cette structure dirent. d_reclen est la longueur d_name, sans compter le caractere nul final. d_name est le nom de fichier termine par un caractere nul.

VALEUR RENVOYEE
readdir renvoie 1 s'il reussit, 0 en fin de repertoire, ou -1 s'il echoue, auquel cas errno contient le code d'erreur.

ERREURS

EBADF
    fd est invalide.

EFAULT
    L'argument pointe en dehors de l'espace d'adressage.

EINVAL
    Le buffer de resultat est trop petit.

ENONENT
    Repertoire inexistant.

ENOTDIR
    Le descripteur est associe a un fichier, pas a un repertoire.

CONFORMITE
Cet appel-systeme est specifique a Linux

VOIR AUSSI
getdents(2), readdir(3)