[C]Anticiper le manque de place sur un disque

Résolu
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014 - 23 mai 2012 à 15:07
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014 - 23 mai 2012 à 21:47
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

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
23 mai 2012 à 20:28
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
3
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014
23 mai 2012 à 21:29
Merci,
je vais me pencher sur tout ça.
Juste un petit truc, ton 2eme lien semble cassé.

Bonne soirée et merci encore
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
23 mai 2012 à 21:36
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
0
StayCrunchy Messages postés 43 Date d'inscription mercredi 24 novembre 2010 Statut Membre Dernière intervention 26 février 2014
23 mai 2012 à 21:47
Effectivement !
0
Rejoignez-nous