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 35 36 37 38 39 40
| while((entree = readdir(rep)) != NULL) //Tant qu'il reste quelque chose a lire
{
/* -ed- les entrées de fichiers commençant par "." sont ignores */
if (strncmp(entree->d_name, ".", 1) == 0)
continue;
/* -ed- c'est probablement ici qu'il y a l'avertissement.
entree->d_name == DT_REG
n'a aucun sens. DT_REG n'est pas un pointeur.
Le bon code est probablement :
entree->d_type == DT_REG
*/
if (entree->d_name == DT_REG || entree->d_type == DT_DIR) // Ne lire que les fichiers et les repertoires
{
*length = *length + strlen(entree->d_name) +1; // Modifie la taille des donnees
newcontenu = realloc(contenu, *length); //Reallocation memoire
if (newcontenu == NULL)
{
perror("realloc"); // Si erreur dans realloc
*length = 0;
return NULL;
}
char *retval;
retval = NULL;
contenu = newcontenu;
strncat(contenu, entree->d_name, NAME_MAX); // Ajoute le nom
strcat(retval,"\n"); // Ajoute le retour a la ligne
/* -ed- ce dernier bloc d'instruction n'a aucun sens.
Si retval vaut NULL, son usage dans strncat() provoque un
comportement indéfini.
*/
}
} |
Partager