Participer au site avec un Tip
Rechercher
 

Améliorations / Corrections

Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.

Emplacement :

Description des améliorations :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonction readdir (POSIX)

Entête à inclure

#include <dirent.h>

Fonction readdir

struct dirent * readdir( DIR * dirp );

La fonction readdir lit l'entrée suivante dans le flux de dossier passé en paramètre. Elle renvoie un pointeur vers une structure struct dirent contenant notamment le nom de cette entrée.

Paramètres

Valeur de retour

La fonction renvoie un pointeur vers une structure struct dirent. Si la fin du dossier est atteinte, elle renvoie NULL sans modifier errno. En cas d'erreur, elle renvoie aussi NULL, mais positionne errno.

Le pointeur renvoyé par readdir désigne une zone gérée par l'implémentation. Vous ne devez pas la libérer avec free, et son contenu peut être remplacé lors de l'appel suivant sur le même flux.

Exemple de code

Le programme suivant montre la technique classique permettant de différencier une fin normale de lecture d'une erreur.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
#define _POSIX_C_SOURCE 200809L

#include <dirent.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>

int main(void) {

    DIR * directory = opendir(".");
    if (directory == NULL) {
        perror("opendir");
        return EXIT_FAILURE;
    }

    errno = 0;
    struct dirent * entry;

    while ((entry = readdir(directory)) != NULL) {
        printf("%s\n", entry->d_name);
    }

    if (errno != 0) {
        perror("readdir");
        closedir(directory);
        return EXIT_FAILURE;
    }

    closedir(directory);
    return EXIT_SUCCESS;
}
Lecture des entrées d'un dossier

Sujets connexes

closedir
DIR *
opendir
readdir_r
rewinddir
struct dirent


Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé