Parcours Arborescence

Parcours Arborescence - C - Programmation

Marsh Posté le 13-06-2009 à 22:11:43    

:hello:  
Je suis en Licence informatique, et suite a un exo qu'on nous a donne j'espère trouver quelques explications ici. J'ai essaye de le faire mais je pense qu'il n'est pas complet.
On nous demande dans l'exo de parcourir l'arborescence enracinée du répertoire "HOME" et donner la liste des fichiers supérieur a 1Mo.
L'exo est demande de faire avec les fonctions systeme bas niveau.
voila ce que j'ai tape:

Code :
  1. int main(int argc, char **argv){
  2. DIR *d;
  3. struct dirent * dir;
  4. struct stat st;
  5. d=opendir("HOME" );
  6. if (d==NULL){
  7. fprintf(stderr,"echec" );
  8. exit(EXIT_FAILURE);
  9. }
  10. (while(dir=readdir(d)){
  11. if(stat(dir->d_name,&st)==-1){
  12. fprintf(stderr,"echec" );
  13. exit(EXIT_FAILURE);
  14. }
  15. if(S_ISREG(st.st_mode)&&(st.st_size>1000)) printf("%s ",dir->d_name);
  16. }
  17. exit(EXIT_SUCCES);
  18. }


 
Il est demande aussi de dire ce que va faire ce programme si, au cours de son parcours, il recontre un lien symbolique qui pointe sur un fichier de taille superieur a 1Mo
 
Merci pour vos aides :jap:


---------------
http://forum.hardware.fr/hfr/Achat [...] 2243_1.htm
Reply

Marsh Posté le 13-06-2009 à 22:11:43   

Reply

Marsh Posté le 14-06-2009 à 02:59:12    

Reply

Marsh Posté le 14-06-2009 à 22:57:54    

Qu'est-ce qui ne va pas ?
 
Peut-être le parcours qui n'inclut pas les sous-directory ?
Pour cela, il faudrait utiliser ue fonction récursive.
Donc, il faudrait sortir la majeur partie de ce code de la fonctin main() pour le mettre dans une fonction, appelée par exemple read_tree(), et appeler cette fonction à l'intérieur de celle-ci quand une sous-directory est détectée.

Reply

Marsh Posté le 16-06-2009 à 15:23:22    

billgatesanonym a écrit :

Qu'est-ce qui ne va pas ?
 
Peut-être le parcours qui n'inclut pas les sous-directory ?
Pour cela, il faudrait utiliser ue fonction récursive.
Donc, il faudrait sortir la majeur partie de ce code de la fonctin main() pour le mettre dans une fonction, appelée par exemple read_tree(), et appeler cette fonction à l'intérieur de celle-ci quand une sous-directory est détectée.


J vais essayer ca, merci :)


---------------
http://forum.hardware.fr/hfr/Achat [...] 2243_1.htm
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed