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.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
...
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] != '.')
      {
          stat(d->d_name, &s);
          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.