Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1633 connectés 

  FORUM HardWare.fr
  Programmation
  C

  fonction de recherche de fichier en C [LINUX]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

fonction de recherche de fichier en C [LINUX]

n°700502
bbugnon
Posté le 15-04-2004 à 19:14:09  profilanswer
 

Salut,
j'arrive pas a trouver une fonction equivalente au FIND qui recherche un fichier donné en parametre (ainsi que le rep de depart)
 
voila ce que g fait: (stat marche pas non plus)  
 
HELP !! :pt1cable:
 
PS: je sais que la fonction devrait etre recursive par la suite mais la je vois pas... :'(
 

Code :
  1. struct dirent *lecture;
  2.     struct stat *buf;
  3.     DIR *rep;
  4.     int i,j;
  5.     rep = opendir(repDepart);
  6.     while ((lecture = readdir(rep))) {
  7.           if((i=(strcmp(lecture->d_name,".\0" )))!=0 && (j=(strcmp(lecture->d_name,"..\0" )))!=0 ){
  8.           printf("FICHIER: %s\n", lecture->d_name);
  9.           printf("INODE: %d\n", lecture->d_ino);
  10.           printf("STAT: %d\n",stat(lecture->d_name,buf));
  11.           printf("STMODE: %d\n",buf->st_mode);
  12.           }
  13.     }
  14.     closedir(rep);
  15.     return NULL;


Message édité par bbugnon le 15-04-2004 à 19:18:00
mood
Publicité
Posté le 15-04-2004 à 19:14:09  profilanswer
 

n°700599
gilou
Modérateur
Modzilla
Posté le 15-04-2004 à 22:38:57  profilanswer
 

Déja, tu vires les \0 de tes chaines.
Quand tu ecris ".."le compilo créera une chaine de 3 caracteres, le 3e etant 0.
DE plus ton test est incomprehensible tel qu'ecrit:
if((i=(strcmp(lecture->d_name,".\0" )))!=0 && (j=(strcmp(lecture->d_name,"..\0" )))!=0 )
Primo, les !=0 sont inutiles, et secondo, tu n'utilises pas i et j plus loin, alors les affectations sont inutiles.
 
En simplifiant ton test, on obtient:
if (strcmp(lecture->d_name,"." ) && strcmp(lecture->d_name,".." ) )
test qui echoue si lecture->d_name est "."ou ".."
 
A+,


Message édité par gilou le 15-04-2004 à 22:39:47
n°700601
Taz
bisounours-codeur
Posté le 15-04-2004 à 22:40:08  profilanswer
 

f((i=(strcmp(lecture->d_name,".\0" )))!=0
 
ptdr [:rofl]

n°700679
gilou
Modérateur
Modzilla
Posté le 16-04-2004 à 00:57:24  profilanswer
 

Boh tu sais Taz, tout le monde a le droit de debuter la prog.
A+,

n°700905
bbugnon
Posté le 16-04-2004 à 11:55:07  profilanswer
 

Taz a écrit :

f((i=(strcmp(lecture->d_name,".\0" )))!=0
 
ptdr [:rofl]


 
 
c surtout pour debugger...  :pfff:

n°700912
gilou
Modérateur
Modzilla
Posté le 16-04-2004 à 12:06:01  profilanswer
 

Si tu debugges, tu fais un appel a strcmp(lecture->d_name,"." ); avant ta ligne, tu met un breakpoint et basta.
Ca evitera d'avoir des lignes illisibles avec des trucs a enlever hors de la phase de debug, activite fortement plantogene. Ton truc pour debugger risque en fait de rajouter des bugs quand tu va passer de la phase "code avec trucs dedans pour le debug" a la phase "code sans trucs dedans pour le debug"
A+,

n°700972
bbugnon
Posté le 16-04-2004 à 13:02:17  profilanswer
 

je sais bien... le hic c que je suis pas encore famillier avec les debuggers linux.. c tout..
Sinon ça va je gere mes printfs sauvages ;)
 
@+

n°701006
Taz
bisounours-codeur
Posté le 16-04-2004 à 13:30:18  profilanswer
 

bbugnon a écrit :


 
 
c surtout pour debugger...  :pfff:  

attend qu'on soit clair
 
 
"taz" <=> {'t', 'a', 'z', '\0'}

n°701039
gilou
Modérateur
Modzilla
Posté le 16-04-2004 à 13:52:35  profilanswer
 

bbugnon a écrit :

je sais bien... le hic c que je suis pas encore famillier avec les debuggers linux.. c tout..
Sinon ça va je gere mes printfs sauvages ;)
 
@+


Ben donc c'est la premiere chose qu'il te faut potasser, car quand tu maitrisera un minimum, tu rattraperas tout le temps perdu a apprendre comment utiliser le debugger, vis a vis du temps mis a ecrire puis effacer des printf dans le source.
A+,


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  fonction de recherche de fichier en C [LINUX]

 

Sujets relatifs
A l'aide inclusion de fichier[VB6] Caractère de fin de ligne de fichier
[JSP/Servlet/Flash] Vérification de l'existence d'un fichierUn equivalent à la fonction substring en asp
[VB] Connection HTTP pour récupérer un fichier binaireRecuperer le texte d'une page web dans un fichier texte
[php ]ecrire dans un fichier[C] problème avec la fonction write sur un port série
Executer une fonction JS dans une autre frameappli Java pour Palm peut-elle lire un fichier XML ?
Plus de sujets relatifs à : fonction de recherche de fichier en C [LINUX]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR