Hello
Je cherche a le faire en language #C
J'ai pas mal chercher. J'ai quand même fini par trouver le code suivant
sa marcherai presque sauf que stat a besoin du chemin complet. or readdir
ne renvoie pas le chemin complet je ne vois pas trop comment contourner le problème.
Je voudrai faire un programme qui permet de sauvegarder et de compresser comme tar, mai également d'avoir tout les info sur les droit l'utilisateur et les droit du fichier, de reproduire une arborescence dans un répertoire de sauvegarde. de sauvegarder le master boot record. le tout avec des option voire carrément un fichier de config. bref du boulot en perspective et comme je débute en #C c'est loin d'etre evident.
Je suis sous debian testing et j'utilise GCC 4.1 pour compiler
voici le code
Voila sion je comptai m'inspirer du code de find et de ls ,mai je ne sai pas ou denicher les souces ?
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 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <dirent.h> #include <sys/stat.h> #include <assert.h> #include <errno.h> void parse(char* sourcerep) { struct dirent* dossiers = NULL; DIR* dossier = NULL; struct stat infos; dossier = opendir(sourcerep); while ((dossiers = readdir(dossier)) != NULL) { printf("ALL--> %s\n", dossiers->d_name); /* stat(dossiers->d_name, &infos); if (S_ISDIR(infos.st_mode)) { // char* commande = NULL; if (strcmp(dossiers->d_name, ".") == 0 || strcmp(dossiers->d_name, "..") == 0) continue; // printf("Repertoire: %s\n", dossiers->d_name); // chdir(dossiers->d_name); parse(dossiers->d_name); //chdir(".."); //fprintf (stderr, "Erreur: %s.\n", strerror(errno) ); } else { //printf("Fichier: %s\n", dossiers->d_name); sleep(1); } */ } closedir(dossier); } int main(void) { parse("/"); return EXIT_SUCCESS; }
Merci d'avance
Partager