Bonjour,
Je recode la fonction ls -l et je rencontre un probleme majeur.
J'utilise les structure dirent et stat pour afficher les différents elements du repertoire.
Tout fonctionne pour mon repertoire courant, mais lorsque je rentre un autre repertoire ma structure stat me renvoie de la m...de.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
...
void cmd_ls(char *av_recup)
{
DIR *dir
struct dirent *d;
struct stat s;
dir = opendir(av_recup);
while ((d = readdir(dir)) != NULL)
{
if (d->d_name[0] != '.')
{
printf("[%s]\n", d->d_name);
if (stat(d->d_name, &s) == (-1))
perror("Problème stat");
putnbr(s.st_size);
putstr(d->d_name);
...
}
}
...
} |
En gros voila. Lorsque je veux afficher l'inode ou le nom du fichier il n'y a pas de soucis. A partir du moment oú je touche a stat() et que je donne comme parametre auter chose que ./ ou . sa foire.
Je ne comprends pas pourquoi car je passe bien le nom du fichier a stat...
Merci d'avance.
Partager