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 :

Connaître le contenu d'un dossier


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut Connaître le contenu d'un dossier
    Bonjour à tous!

    J'ai un programme en C qui permet de faire une acquisition vidéo issue d'une WebCam.

    Je suis sous Linux, les webcam détectées sont placées dans le répertoire /dev/, sous la forme video0, video1 etc...

    JE voudrais que mon programme, lors de son lancement détecte le nombre de caméras connectées, les liste, puis ensuite active chacune d'elle.

    Ma question est simple: comment faire pour accéder au contenu du dossier /dev, et mettre son contenu, par exemple, sous forme de tableau pour pouvoir ensuite l'exploiter ultérieurement?

    Merci d'avance pour vos réponses expertes,
    Bonne aprem
    F

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

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Flophx
    Ma question est simple: comment faire pour accéder au contenu du dossier /dev, et mettre son contenu, par exemple, sous forme de tableau pour pouvoir ensuite l'exploiter ultérieurement?
    <dirent.h>, opendir(), readdir() ... C'est pas une FAQ ?
    C'est pas standard C, mais c'est POSIX.1, donc très portable.

  3. #3
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut
    J'ai utilisé ces fonctions, mais je me retrouve avec une erreur de segmentation lorsque je fais deux appels à ma fonction:

    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
     
    void listingDossier(const char ** tableau,const char* dossier, const char *element, size_t nombre){
     
    	struct dirent *lecture;
    	DIR *rep;
    	rep = opendir(dossier);
    	size_t nb = nombre;
    	int i=0;
     
    		while ((lecture = readdir(rep)))
    		{
    			char * nomComplet;
    			const char * nom = lecture->d_name;
     
    			if(strncmp(nom, element, nb)==0){
    				sprintf(nomComplet, "%s%s",dossier,nom);
    				tableau[i]=nomComplet;
    				printf("FICHIER%d: %s\n",i,tableau[i]);
    				i++;
    			}
     
    		}
    	closedir(rep);
    }
    avec les appels suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    listingDossier(&repertoireVideo,"/dev/","video",5);
    //printf("Repertoire video 0: %s\n", repertoireVideo[0]);
    listingDossier(&repertoireMnt,"/mnt/","",0);
    J'ai aussi une erreur de segmetation lorsque je fais un printf sur un des éléments de repertoireVideo, qui est déclaré comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    const char*repertoireVideo;
    const char*repertoireMnt;
    J'ai nécessairement fait une erreur, mais où?
    Merci à ceux qui pourront m'éclairer

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    ta variable nom_complet n'est pas allouée, et tu fais un sprintf....

  5. #5
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    252
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 252
    Par défaut
    non!!!
    Je me suis mal exprimé , le printf dans la fonction marche parfaitement!!
    C'est celui qui est en commentaire entre les deux appels à la fonciton qui fait une erreur de segmentation!!

    Et le fait qu'il y ait une erreur lors du second appel!

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je répète, ta varaible nom_complet n'est pas allouée, tu lui fais un sprintf dedans, et ça va écraser n'importe quoi....

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/01/2006, 14h50
  2. ajouter le contenu d'un dossier ftp à une bdd
    Par lioudow dans le forum Requêtes
    Réponses: 2
    Dernier message: 16/11/2005, 19h46
  3. Lister le contenu d'un dossier dans une ListBox
    Par zidenne dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2005, 12h51
  4. [OmniMark 5] Copier contenu d'un dossier dans autre dossier
    Par Hoegaarden dans le forum Autres langages
    Réponses: 3
    Dernier message: 24/08/2005, 16h59
  5. afficher le contenu d'un dossier distant
    Par roots_man dans le forum ASP
    Réponses: 3
    Dernier message: 04/02/2005, 17h23

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