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) :
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
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); }
Voilà, si vous pouviez m'aider, je vous en serais très reconnaissant !
Merci d'avance.
Partager