Bonjour !

Je me permets de poster dans cette section pour essayer d'obtenir un peu d'aide. Voilà le problème, je dois recoder la fonction ls du système unix, j'ai en partie réussi, mais il me reste une étape qui me pose problème, comment puis-je trier les fichier renvoyer par ma fonction, par ordre alphabétique.

J'ai vu des postes similaires mais je n'ai pas bien compris comment les appliquer à mon cas.. vous allez comprendre

Voici le code à l'heure actuel, là ce n'est que pour la partie ls sans option (-l -r etc) :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
 
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <assert.h>
 
int     the_ls(char *str)
{
  struct stat   buf;
  int           b;
  int           a;
 
  a = 0;
  b = stat(str, &buf);
  if (b == -1)
    my_putstr("error");
  else if (S_ISREG(buf.st_mode))
    {
      while (str < str + 1)
        {
          my_strcmp(str, str + 1);
          str++;
        }
      my_putstr(str);
      my_putchar(' ');
    }
}
 
int     my_ls()
{
  struct dirent *files;
  DIR           *dir;
  int           i;
 
  dir = opendir(".");
  if (dir == NULL)
    return (0);
  while (files = readdir(dir))
    {
      the_ls(files->d_name);
      i++;
    }
  closedir(dir);
  return (1);
}
comme vous pouvez le voir dans la fonction "the_ls" j'ai essayé de manipuler my_strcmp, mais je n'arrive pas à voir la façon dont on est sensé s'en servir... J'ai donc laissé ma dernière manipulation du désespoir

Voilà, si vous pouviez m'aider, je vous en serais très reconnaissant !

Merci d'avance.