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

Linux Discussion :

Lister les disque dur et connaitre leur type


Sujet :

Linux

  1. #1
    Débutant
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 46
    Points
    46
    Par défaut Lister les disque dur et connaitre leur type
    Bonjour, voila je suis en train de réalise un petit programme et j'aurai besoin de lister les partition de tout les disque dur et clé usb présent sur le pc avec le type de partition et la taille.

    J'ai déjà trouvé ça:

    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
    #include <mntent.h>
    #include <stdio.h>
    #include <stdlib.h>
     
    int main ()
    {
    struct mntent *me;
    FILE *mntfp = setmntent( "/etc/mtab", "r" );
    while((me = getmntent(mntfp)) != NULL)
    {
        printf("mnt_fsname: %s,mnt_dir: %s, mnt_type:%s\n",
    me->mnt_fsname,
    me->mnt_dir,
    me->mnt_type);
    }
    endmntent(mntfp);
    return 0;
    }
    le probleme c'est que ça me liste tous les systemes monté mais pas ceux qui ne le sont pas.

    Donc auriez vous une solution ? ou sinon une autre lib a utilisé ?

    merci @++

  2. #2
    Membre averti Avatar de fransoo
    Inscrit en
    Novembre 2009
    Messages
    209
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 209
    Points : 300
    Points
    300
    Par défaut
    Pourquoi ne pas exploiter le retour de la commande

  3. #3
    Débutant
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 46
    Points
    46
    Par défaut
    Oui j'y avais pensé mais comment faire ?

    Écrire le retour de "fdisk -l" dans un fichier puis le lire ?

    Et quel option donné a fdisk pour qu'il me liste juste les disque ?

    Désolé pour toute ces question mais je ne suis pas encore très familier avec le bash !

  4. #4
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lenul79 Voir le message
    Oui j'y avais pensé mais comment faire ?

    Écrire le retour de "fdisk -l" dans un fichier puis le lire ?
    Non, juste popen suffira
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fp=popen("fdisk -l", "r")
    Ensuite tu traites fp comme un FILE *

    Citation Envoyé par lenul79 Voir le message
    Et quel option donné a fdisk pour qu'il me liste juste les disque ?
    man fdisk...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  5. #5
    Débutant
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 46
    Points
    46
    Par défaut
    Ok merci a toi je ne connaissais pas la fonction popen.

    @++

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lenul79 Voir le message
    Ok merci a toi je ne connaissais pas la fonction popen.

    @++
    Elle fonctionne sous le même principe que les pipe (d'ailleurs popen signifie "pipe open"). Elle sert à récupérer le résultat d'une commande (mode "r") ou à envoyer des datas dans une commande (mode "w")
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Débutant
    Inscrit en
    Décembre 2006
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 100
    Points : 46
    Points
    46
    Par défaut
    Bonjour alors voila ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	FILE *fp;
    	fp=popen("sudo fdisk -l", "r");
    	cout << fp << endl;
    	pclose(fp);
    seulement voici ce que j'ai quand je lance mon programme:

    0xa0181a0

    Voila @++

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par lenul79 Voir le message
    Bonjour alors voila ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	FILE *fp;
    	fp=popen("sudo fdisk -l", "r");
    	cout << fp << endl;
    	pclose(fp);
    seulement voici ce que j'ai quand je lance mon programme:

    0xa0181a0

    Voila @++
    cout << fp << endl !!! Tu fais du C ou du C++ ??? Parce que c'est pas la même chose !!!

    Tente-le en C classique. Vérifie aussi fp s'il n'est pas à NULL et affiche strerror(errno) si c'est le cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	FILE *fp;
    	char ligne[80];
    	fp=popen("sudo fdisk -l", "r");
    	if (fp == NULL)
    	{
    		printf("erreur popen - %s\n" % strerror(errno));
    		exit(1);
    	}
    	while (fgets(ligne, 80, fp) != NULL)
    		printf("%s", ligne);
    	pclose(fp);
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Lister les disques durs USB, les clés ainsi que les appareils photos
    Par infosam76 dans le forum VB 6 et antérieur
    Réponses: 17
    Dernier message: 25/02/2015, 23h26
  2. [parted] Lister les disques durs
    Par smarties dans le forum Linux
    Réponses: 5
    Dernier message: 30/12/2009, 19h31
  3. [WD 12] Lister tout les disque dur
    Par matt1704 dans le forum WinDev
    Réponses: 8
    Dernier message: 16/04/2009, 15h14
  4. Réponses: 1
    Dernier message: 25/01/2008, 15h18
  5. Comment connaitre les disques dur d'une machine dans un code ?
    Par GeekettePower dans le forum Langage
    Réponses: 3
    Dernier message: 27/06/2006, 00h43

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