IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Lister des dossiers Linux et Windows


Sujet :

C

  1. #1
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut Lister des dossiers Linux et Windows
    Bonjour, j'aimerai savoir comment fait-on pour énumérer des dossiers?
    Je n'ai pas trouver dans http://c.developpez.com/faq/c/?page=fichiers
    Il faut que ce soit compatible pour Linux et Windows.

    J'aimerai aussi savoir si une fonction qui demande de la mémoire (avec malloc() ) est bonne comme je fait.

    Pour renvoyer une chaîne de caratcaires, je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char *mafct(char *s){
    ...
    char *resultat = malloc(50);
    ...//Je met ce que je dois dans resultat
    return resultat;
    }
    Parce que je ne fait jamais de free();


    Merci d'avance de vos réponses

  2. #2
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Belegkarnil
    Bonjour, j'aimerai savoir comment fait-on pour énumérer des dossiers?
    opendir() readdir() etc. C'est POSIX.1, donc très portable.

    J'aimerai aussi savoir si une fonction qui demande de la mémoire (avec malloc() ) est bonne comme je fait.

    Pour renvoyer une chaîne de caratcaires, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char *mafct(char *s)
    { 
       char *resultat = malloc(50); ...//Je met ce que je dois dans resultat 
     
       return resultat; 
    }
    Parce que je ne fait jamais de free();
    La fonction est correcte, mais tu devrais récupérer l'adresse dans l'appelant et faire le free() quand tu n'as plus besoin du bloc. Sinon, au bout d'un moment, plus de mémoire. Pas grave si c'est un programme 'one shot' (et encore...), catastrophique si c'est un programme 24/7 (serveur, par exemple).
    Pas de Wi-Fi à la maison : CPL

  3. #3
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    Donc, en gros quand je n'ai plus besoin de ma variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *var = mafct("string");
    var, je dois faire un free(); sur var?

  4. #4
    Membre averti
    Avatar de joellel
    Profil pro
    Inscrit en
    Février 2003
    Messages
    234
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Février 2003
    Messages : 234
    Points : 338
    Points
    338

  5. #5
    Membre actif Avatar de Belegkarnil
    Inscrit en
    Juin 2005
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Juin 2005
    Messages : 289
    Points : 205
    Points
    205
    Par défaut
    OK merci ;-) ^^

  6. #6
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par Belegkarnil
    Donc, en gros quand je n'ai plus besoin de ma variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *var = mafct("string");
    var, je dois faire un free(); sur var?
    Oui.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    free (var), var = NULL;
    Ca évite les tentations...
    Pas de Wi-Fi à la maison : CPL

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. lister des dossiers réseau
    Par airod dans le forum Réseau/Web
    Réponses: 13
    Dernier message: 29/06/2010, 14h22
  2. lister des dossiers personnels
    Par xcbilx dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 04/10/2008, 17h18
  3. lister des dossiers
    Par mdr_cedrick dans le forum Langage
    Réponses: 2
    Dernier message: 27/06/2008, 16h29
  4. Réponses: 3
    Dernier message: 22/12/2007, 22h23
  5. lister des dossiers dans un ComboBox
    Par taulmaril dans le forum Windows
    Réponses: 7
    Dernier message: 01/05/2004, 15h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo