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 opendir (POSIX)

Entête à inclure

#include <dirent.h>

Fonction opendir

DIR * opendir( const char * dirname );

La fonction opendir ouvre le dossier dont le chemin est fourni en paramètre et renvoie un flux de dossier. Ce flux permettra ensuite de lire les entrées du dossier avec readdir.

Paramètres

Valeur de retour

En cas de succès, la fonction renvoie un pointeur de type DIR *. En cas d'erreur, elle renvoie NULL et positionne errno.

Codes erreurs pouvant être déclenchés

Exemple de code

L'exemple suivant ouvre le dossier passé en paramètre puis affiche son contenu.

 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 
 32 
 33 
 34 
#define _POSIX_C_SOURCE 200809L

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

int main(int argc, char * argv[]) {

    if (argc != 2) {
        printf("Usage: %s directory\n", argv[0]);
        return EXIT_FAILURE;
    }

    DIR * directory = opendir(argv[1]);
    if (directory == NULL) {
        perror("opendir");
        return EXIT_FAILURE;
    }

    errno = 0;
    struct dirent * entry;

    while ((entry = readdir(directory)) != NULL) {
        puts(entry->d_name);
    }

    if (errno != 0) {
        perror("readdir");
    }

    closedir(directory);
    return errno == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
Ouverture d'un dossier

Sujets connexes

closedir
DIR *
fdopendir
readdir
scandir


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