CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Linux, C/C++] Information partition.

libidodotso
libidodotso
Niveau 4
13 mars 2014 à 08:54:58

Bonjour à tous,

J'essaie toujours de récupérer des informations concernant les hdd/ssd installés sur un système linux.

J'utilise libparted pour les informations "générique" et statvfs pour les partitions monté. Problème, statvfs64 récupère bien les informations(secteurs utilisés, taille du secteur logique, ...) des partitions montés, j'ai trois partitions ntfs(systeme windows, récupération, ...) qui elles ne sont pas monté et retourne des informations erronée.

Pourtant dans la doc de cette fonction, il est stipulé "The function statvfs() returns information about a mounted filesystem."

Si mon anglais est bon, cette fonction ne devrait pas marcher sur un système de fichier non monté? Or la fonction retour toujours 0 pour notifier que la fonction s'est bien déroulée.

Question, un solution alternative? Ou ai-je fais une erreur dans mon code?

http://pastebin.com/ts03X1Xu

Merci.

libidodotso
libidodotso
Niveau 4
13 mars 2014 à 17:46:56

Petit up

Toujours pas trouvé de solution :(

godrik
godrik
Niveau 30
13 mars 2014 à 18:32:53

je ne suis pas expert de ce truc la, mais ce que tu dis me parais bizare. Qui est ntfs dans ton cas?

Le man de statvfs sur ma machine dit: "path is the pathname of any file within the mounted file system." Ce qui me semble etre le mot cle ici est "within". donc j'ai l'impression que quand tu fais l'appel sur /dev/sda, tu devrais obtenir les informations du systeme de fichier /dev/. C'est certainement ca que tu obtiens quand tu probe ton systeme de fichier ntfs.

(Ou alors j'ai rien compris.)

libidodotso
libidodotso
Niveau 4
13 mars 2014 à 19:28:21

Alors le pathname est le point de montage de la partition trouvé dans /etc/mtab, donc ce n'est pas le block device en lui même que j'ai indiqué.

L'objet <<this->_mountPoint>> est enfaite l'instance de la classe QDir que j'ai initialisé dans la liste d'init de mon constructeur, j'ai donc utilisé le constructeur par défaut de QDir qui paramètre sont dossier de travail par défaut comme étant le dossier courant, en l'occurrence le dossier de compilation de mon programme qui se trouve étrangement sur la seul partition ntfs de monté sur mon système :hap:

Erreur de boulet en somme, j'ai l'air malin :hap: .

Merci de ta réponse, j'aurai peut être mis encore pas mal de temps avant de trouver mon erreur stupide :noel:

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment