Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 ?

Karl_le_rouge a écrit :

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.

merci pour l'information esque tu peut me dire esque cette fonction permet aussi de me donne la taille de mes partition ?

Hors ligne