#1 Le 13/05/2008, à 22:13
- lenetfm
comment connaitre la taille libre dans une disquette ?
Bonsoir tout le monde ; jai une petit question je veux faire un programme en C qui me donne la taille libre pour une disquette; jai chercher partout et j'ai pas trouve
je sais qu'il faut utilise la commande system mais le problem c'est que je ne sais pas la commande sous linux qu'elle m'affiche les propriete d'une disquette (floppy) esque vous pouvez me dire une commande merci infiniment
Hors ligne
#2 Le 14/05/2008, à 05:59
- Banditu
Re : comment connaitre la taille libre dans une disquette ?
Tu peux utiliser df avec le nom du dossier/fichier en argument.
Donc je suppose que :
system("df /media/floppy0")
Ca fonctionne mais ça te sort un truc trés long et détaillé donc il doit y avoir un moyen plus pratique de faire ça.
Sys. de fich. 1K-blocs Occupé Disponible Capacité Monté sur
/dev/sda3 104228920 12605952 86370116 13% /
Dernière modification par Banditu (Le 14/05/2008, à 10:40)
Hors ligne
#3 Le 15/05/2008, à 02:05
- nicolas66
Re : comment connaitre la taille libre dans une disquette ?
df /media/floppy0 | tail -n 1 | awk '{print $3}'
"The computer was born to solve problems that did not exist before." (B. Gates)
Hors ligne
#4 Le 15/05/2008, à 07:37
- durendal94
Re : comment connaitre la taille libre dans une disquette ?
Hello,
j'ajouterai un -h ( human readable ! )
ca rend tout de suite plus lisible ;-)
Hors ligne
#5 Le 15/05/2008, à 09:03
- Karl_le_rouge
Re : comment connaitre la taille libre dans une disquette ?
Eviter d'utiliser la fonction system() et préférer l'utilisation de fork()+ exec*()-c'est à peine plus compliqué-, system() invoque un nouveau shell pour exécuter la commande et c'est inefficace.
http://www.advancedlinuxprogramming-fr.org/doku.php?id=livre:chap3:processus
Sinon, plutôt que de faire appel à une commande shell qui dépends du shell et de l'implémentation de df utilisée, je te recommande l'utilisation de libgtop très simple d'utilisation pour récupérer des infos sur le système et qui est portable sur tout Unix.
Tu n'as besoin que de la fonction glibtop_get_fsusage () et à lui fournir une structure glibtop_fsusage (pense à l'initialiser avec un memset) et le point de montage en entrée.
http://library.gnome.org/devel/libgtop/stable/libgtop-fsusage.html
Tu as également la possibilité d'utiliser la famille de fonctions Unix stat mais c'est nettement moins pratique.
Dernière modification par Karl_le_rouge (Le 15/05/2008, à 09:06)
Hors ligne
#6 Le 18/05/2008, à 17:12
- lenetfm
Re : comment connaitre la taille libre dans une disquette ?
Eviter d'utiliser la fonction system() et préférer l'utilisation de fork()+ exec*()-c'est à peine plus compliqué-, system() invoque un nouveau shell pour exécuter la commande et c'est inefficace.
http://www.advancedlinuxprogramming-fr.org/doku.php?id=livre:chap3:processusSinon, plutôt que de faire appel à une commande shell qui dépends du shell et de l'implémentation de df utilisée, je te recommande l'utilisation de libgtop très simple d'utilisation pour récupérer des infos sur le système et qui est portable sur tout Unix.
Tu n'as besoin que de la fonction glibtop_get_fsusage () et à lui fournir une structure glibtop_fsusage (pense à l'initialiser avec un memset) et le point de montage en entrée.
http://library.gnome.org/devel/libgtop/stable/libgtop-fsusage.htmlTu as également la possibilité d'utiliser la famille de fonctions Unix stat mais c'est nettement moins pratique.
merci pour l'information esque tu peut me dire esque cette fonction permet aussi de me donne la taille de mes partition ?
Hors ligne