Bonjour,
J'essaye de recoder la fonction Ls et j'ai un petit soucis quant à l'affichage des droits.
Le code que j'utilise pour les afficher est :
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
22
23
24
25
 
#include <sys/stat.h>
 
void    put(char c)
{
  write(1, &c, 1);
}
 
void    aff_right(const mode_t mode, struct stat *s)
{
  if (S_ISDIR(s->st_mode))
    put('d');
  else
    put('-');
  (mode & S_IRUSR) ? put('r') : put('-');
  (mode & S_IWUSR) ? put('w') : put('-');
  (mode & S_IXUSR) ? put('x') : put('-');
  (mode & S_IRGRP) ? put('r') : put('-');
  (mode & S_IWGRP) ? put('w') : put('-');
  (mode & S_IXGRP) ? put('x') : put('-');
  (mode & S_IROTH) ? put('r') : put('-');
  (mode & S_IWOTH) ? put('w') : put('-');
  (mode & S_IXOTH) ? put('x') : put('-');
  put(' ');
}
Cependant voilà mon résultat suivit du résultat que me donne ls -la :
Le miens:
--w-----wx
--w-r---wx
--wx-wx-wx
--wxrwx-wx
dr--rw--wx
-r-x--x-wx
-r-xrw--wx
-rw--w--wx
-rw-rwx-wx
-rwx-wx-wx
-rwxrwx-wx
----rw--wx
Lui obtenu avec ls -la:
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rw-r--r--
-rwxr-xr-x
-rw-r--r--
drwxr-xr-x
-rw-r--r--
-rw-r--r--
-rw-r--r--
Ca va bientôt faire 5 heures que je suis bloqué dessus et je ne vois absolument pas d'où viens le problème... pourriez-vous m'aider?
Merci !