Récupération d'information sur les périphériq

manisZ -  
 manisZ -
Bonjour,
Est ce qu’il y a des fonctions sous linux qui permettent de récupérer directement les informations sur les périphériques de stockage (disque dur, clés usb ….), les partitions existantes, et les volumes montés (une autre méthode qui évite de parser soi même les fichiers de config)

Des fonctions linux équivalentes à GetLogicalDrives, GetDriveType, IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS, SetupDiEnumDeviceInterfaces, GUID_DEVINTERFACE_DISK sous WINDOWS

PS : j’ai fais une longue recherche sur le net sans rien trouvé

4 réponses

sebsauvage Messages postés 33415 Statut Modérateur 15 667
 
Pourtant parser la sortie de `mount` c'est du gâteau, non ?
Bon c'est vrai que ça fait lancer un programme exterieur, mais bon.

Tu peux jeter un coup d'oeil dans /proc/mounts et /proc/partitions
(ça évite d'avoir à lancer la commande mount)
0
manisZ
 
Merci pour les réponses
1. je veux que tous soit codé en C ou C++, pour ne pas avoir le problème d' une commande qui n'est pas dans le PATH
2. je ne veux pas parser les fichiers de config car dans mon cas ils changerons fréquemment
0
sebsauvage Messages postés 33415 Statut Modérateur 15 667 > manisZ
 
1.) /proc/mounts se comporte comme un simple fichier. Aucun programme externe à lancer.

2.) quelle que soit la fréquence de changement, la structure de /proc/mount ne change pas: c'est standardisé.
Tu peux le lire aussi fréquemment que tu le souhaite.
0
jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Voir Connaitre son matériel ;-))
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

pour ne pas avoir le problème d' une commande qui n'est pas dans le PATH
personne ne t'empêche d'utiliser le chemin complet de la commande ;-)
0
manisZ
 
il 'est possible de recuperer les volumes monté sans parser soi meme les fichier de config en utilisant les fcts
getmntent, setmntent, addmntent, endmntent, hasmntopt, getmntent_r
cf: https://linux.die.net/man/3/getmntent
0