Prbleme SegFault opendir boucle

Fermé
divx78 Messages postés 115 Date d'inscription dimanche 11 mars 2007 Statut Membre Dernière intervention 21 mars 2009 - 19 nov. 2008 à 17:16
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 19 nov. 2008 à 17:52
Bonjour,
Voila mon probléme j'ai un char ** qui contien des url(s) de dossier ce programme marche bien que je lui donne une case de mon char **
exemple :

fd = opendir(xpath[0])
il me liste bien le contenu mais dans la boucle ca segfault je ne comprend pas pourqoi
Merci de votre lumiére.

while(a < 5)
{
fd = opendir(xpath[a]);
while((lec = readdir(fd)))
{
my_putstr(lec->d_name);
my_putstr("\n");
}
closedir(fd);
a = a + 1;
}

a Bientôt.

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 nov. 2008 à 17:50
while(a < 5)
{
fd = opendir(xpath[a]);
while((lec = readdir(fd))) 

Que se passe t'il dans readdir si opendir retourne NULL à ton avis?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 nov. 2008 à 17:52
while(a < 5)
{
fd = opendir(xpath[a]);
while((lec = readdir(fd)))
{
my_putstr(lec->d_name);
my_putstr("\n");
}
closedir(fd);
a = a + 1;
} 

Ou alors admettons que readdir(NULL) est robuste et ne plante pas mais renvoie NULL.
Donc on rentre pas dans la boucle, mais on fait closedir(NULL);
Idem....
0