• STATISTIQUES
  • Il y a eu un total de 0 membres et 37932 visiteurs sur le site dans les dernières 24h pour un total de 37 932 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] PHP France
    Pour tout savoir sur le PHP, en français. Vous trouverez des tutoriels, des exemples, des astuces, toute la do...
    Hacking
    [FR] dcode
    dcode.fr est le site indispensable pour décoder des messages, tricher aux jeux de lettres, résoudre des énigmes...
    Outils / Add-on
    [EN] Hack This Site
    Hack This Site est considéré comme un réel terrain d'entraînement légal pour le...
    Hacking
    [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [EN] CS Tutoring Center
    Site de challenge spécialisé dans les challenges de programmation C++ et java cependant, d'autres langages pe...
    Challenges
    [EN] Sabre Films
    Site de challenge présenté sous la forme d'une quête. Vous êtes un détective et devrez résoudre d...
    Challenges
    [EN] phrack
    Lot's of stuff !
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[C] Parcours récursif des dossiers
20-04-2013, 23h16 (Modification du message : 20-04-2013, 23h23 par Kiwazaru.)
Message : #2
Kiwazaru Hors ligne
Padawan d'un super escargot
*



Messages : 284
Sujets : 26
Points: 139
Inscription : Mar 2012
RE: [C] Parcours récursif des dossiers
Déjà, je crois qu'on ne peut pas faire : if (opendir(arg) == ENOTDIR) puisque opendir attend de renvoyer quelque chose dans une déclaration DIR* .
On devrais donc faire DIR* new; -> new = opendir(new_path); + if ( new != ENOTDIR )..
Ensuite pour l'histoire de récursivité, je pense pas qu'on puisse fonctionner avec une seule fonction, j'avais pensé à deux fonction qui auraient une interaction continuelle entre elles, et ces deux fonctions serait dynamique entre elle aussi, cet à dire qu'elles se complèterait et donc permettrais de parcourir un nouveau dossier sans devoir déclarer une infinité de DIR* ce qui serais totalement bête et de toute façon impossible puisqu'on ne peut prédire le nombre de dossier présent dans un dossier de dossier à l'avance...
Pour finir une fonction "int" qui ne renvoi rien ça sert à rien donc fait une fonction "void" :p.

Bref on aurais un schéma : int main(); void dParcours(char* path); void dParcours_bis(char *path);
Avec dans chacune des fonctions une déclaration de DIR* qui parcourrait le nouveau "path" et qui se renverrais à la fonction dParcours (si la fonction courante est dParcours_bis et vice versa) avec le nouveau dossier trouvé Smile

Je ne sais pas si c'est la solution la plus simple, mais c'est là seule qui m'est venu à l'esprit à la vue de ce post pour éviter une infinité de déclaration DIR* :p
Sinon pour l'indentation de ton code, -> if() sans instruction dedans tu peux faire
Code C :
if( x == y ){
}
 

Ou encore,
Code C :
if( x == y ) { }

Je sais pas si des compilateurs acceptent
Code C :
if( x == y )
else{
...
}
 
Toucher au Kernel, c'est un peut comme se shooter au LSD, on pense pouvoir tout faire mais ça finit souvent mal.
+1 (0) -1 (0) Répondre


Messages dans ce sujet
RE: [C] Parcours récursif des dossiers - par Kiwazaru - 20-04-2013, 23h16

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [C TOTW 2] Parcours de tableau ark 5 368 29-09-2014, 17h44
Dernier message: crown
  [C++] Parcours de dossier récursif Dobry 2 209 04-03-2012, 11h13
Dernier message: Dobry
  [C] Need help pour free en recursif... ark 3 243 27-11-2011, 00h57
Dernier message: walafc0

Atteindre :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut