[C]Anticiper le manque de place sur un disque [Résolu]

Signaler
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014
-
StayCrunchy
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014
-
Bonjour,
Après quelques recherches qui m'ont un peu fâchées avec Google (on peut se consoler avec le petit synthé entre 2 recherches (voir event : google.fr)), je ne parviens toujours pas à trouver une solution qui puisse régler le petit problème que je rencontre.

Pour ceux qui se souviennent de mon dernier message, je suis sur un programme qui copie en masse des fichiers d'un dossier A vers un dossier B sous Ubuntu.

Le programme rempli sa mission sans erreur dans la plus part des tests. Les seules fois où le programme s'est comporté bizarrement, cela était (selon moi) du au fait que le dossier B (celui qui reçoit tous les fichiers) se situait sur un disque plein à craquer. Le système affichait des messages qui suggéraient de faire un peu de place.
Pour le moment, je suis obligé de vérifier moi-même qu'il y a assez de place disponible sur un disque de réception avant de lancer le programme mais j'aurais voulu que mon programme puisse lui même me dire lorsqu'il rencontre des problèmes pour copier un fichier. Qu'il puisse comparer la taille du fichier à copier avec la capacité restante sur le disque de réception. Je ne trouve pas de fonctions pour connaitre en temps réel l'espace disponible sur un disque. Je fais donc appel à vos connaissances pour me venir en aide.

Merci ;)

4 réponses

Messages postés
3804
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
30 janvier 2020
95
Bonjour.

Je ne trouve pas de fonctions pour connaitre en temps réel l'espace disponible sur un disque

Sous unix, tout est fichier, même ce genre d'information !
En éditant le fichier spécial /proc/meminfo tu obtiens des informations sur la RAM.
Pour ce qui est de la place restante sur disque, soit tu récupères le résultat de la commande "df", soit tu reprends son code source, disponible ici:
http://www.koders.com/c/fidDFE2DF98EDE55BD836E7C0AB9E484FB87CF5FE1E.aspx

N'oublie pas non plus que lors d'une écriture (avec write), on te renvoi un code d'erreur. Si celui-ci est "No space left on device", c'est même encore plus simple :)
Liste des codes d'erreur, le 28 t’intéressera:
[rabbit.eng.miami.edu/info/functions/errors.html rabbit.eng.miami.edu/info/functions/errors.html]

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

Merci,
je vais me pencher sur tout ça.
Juste un petit truc, ton 2eme lien semble cassé.

Bonne soirée et merci encore
Messages postés
3804
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
30 janvier 2020
95
Il suffit de le copier coller, ça doit être un bug :)
rabbit.eng.miami.edu/info/functions/errors.html

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
43
Date d'inscription
mercredi 24 novembre 2010
Statut
Membre
Dernière intervention
26 février 2014

Effectivement !