C ça doit être une erreur de pointeur ?
Crillus
Messages postés
192
Date d'inscription
Statut
Membre
Dernière intervention
-
Crillus Messages postés 192 Date d'inscription Statut Membre Dernière intervention -
Crillus Messages postés 192 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voila, je cherche deux choses :
d'une part je voudrais d'abord afficher le total de fichiers d'un répertoire, puis,
d'autre part je voudrais afficher la liste des fichiers de ce répertoire.
pour le total, j'ai déjà trouvé :
seulement voila, une fois ce total effectué, on se retrouve en "fin de DIR" et du coup, je ne sais pas comment afficher la liste des fichiers par la suite.
est-ce que vous sauriez comment faire ? J'ai pensé à copier le DIR * avant l'appel de la fonction, histoire de conserver un pointeur sur le début du DIR mais ça ne marche pas, je me retrouve toujours en fin de répertoire.
est-ce que je suis suffisamment clair ? merci d'avance ^^
Voila, je cherche deux choses :
d'une part je voudrais d'abord afficher le total de fichiers d'un répertoire, puis,
d'autre part je voudrais afficher la liste des fichiers de ce répertoire.
pour le total, j'ai déjà trouvé :
void getTotal(DIR * dp) { unsigned int n; struct dirent * dirp; n = 0; while ( (dirp = readdir(dp)) != NULL) n++; printf("-l = Total = %d\n", n); }
seulement voila, une fois ce total effectué, on se retrouve en "fin de DIR" et du coup, je ne sais pas comment afficher la liste des fichiers par la suite.
est-ce que vous sauriez comment faire ? J'ai pensé à copier le DIR * avant l'appel de la fonction, histoire de conserver un pointeur sur le début du DIR mais ça ne marche pas, je me retrouve toujours en fin de répertoire.
DIR * dp2 = dp; /*puis j'appelle la fonction*/
getTotal(dp); /*et malgré tout dp2 est aussi à la fin du dir et pas moyen de l'utiliser pour afficher le contenu du répertoire
est-ce que je suis suffisamment clair ? merci d'avance ^^
A voir également:
- C ça doit être une erreur de pointeur ?
- Pointeur souris - Guide
- Curseur Windows 10 : comment bien voir la souris à l'écran - Guide
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur t32 ✓ - Forum Livebox
- Instagram une erreur s'est produite - Forum Instagram
2 réponses
Avec une copie de pointeur, c'est normal.
La solution c'est ça : https://linux.die.net/man/3/rewinddir
Je t'explique comment j'ai trouver en quelques clic :
premier lieu tu utilises readdir, il doit donc y avoir un lien avec cette fonction, alors tu va voir la page de manuel de readdir (man readdir sur internet depuis windows) et là, en bas il y a une liste de fonctions liés à readdir.
En général à partir de leur nom tu peut deviner ce qu'elle font, sinon tu explores les unes après les autre.
En général je m'en sort ainsi.
La solution c'est ça : https://linux.die.net/man/3/rewinddir
Je t'explique comment j'ai trouver en quelques clic :
premier lieu tu utilises readdir, il doit donc y avoir un lien avec cette fonction, alors tu va voir la page de manuel de readdir (man readdir sur internet depuis windows) et là, en bas il y a une liste de fonctions liés à readdir.
En général à partir de leur nom tu peut deviner ce qu'elle font, sinon tu explores les unes après les autre.
En général je m'en sort ainsi.