Réservation de mémoire pour un fichier en C [Résolu/Fermé]

Signaler
Messages postés
125
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
7 janvier 2013
-
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
-
Bonjour à tous,

J'aimerai crée un fichier et lui réserve un espace mémoire sur mon disque dur. Si quelqu'un connait une astuce pour ces genres de choses? Merci d'avance

2 réponses

Messages postés
4100
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
2 septembre 2013
828
Bonjour,

Lorsque tu créé un fichier, c'est pour écrire dedans.
La taille de ton fichier dépends donc de son contenu, mais aucunement d'une gestion d'allocation de "taille/mémoire" sur le disque dur.

On ne peut pas réserver - du moins je crois - à l'avance un certain espace pour un fichier.
youscoul
Messages postés
125
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
7 janvier 2013
4
merci pour cette réponse rapide. En effet, lorsque que je crée mon fichier, j'ecris à chaque fois 4 élements de type float. Mais le problème est que ces 4 elements peuvent êtres stockés par exemple à la position 1000 de mon fichier. Donc comment le système peut gerer ça ?, car on n'a rien ecrit d'abord dans mon fichier entre son debut........jusquà cette position. Merci
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1628
Comment veux-tu écrire à la position 1000 de ton fichier s'il n'y a rien d'écrit dedans ?
Tu pourras mettre une variable à la position 1000 lorsque ton fichier contiendra 999 enregistrements au minimum (ce sera alors le dernier élément).

En parallèle avec la réalité, c'est comme si tu voulais finir 10ème à une course où tu es tout seul.

Si tu veux plus de précisions, n'hésite pas.

Cdlt,
youscoul
Messages postés
125
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
7 janvier 2013
4
J'etais de même avis que vous avant que je ne fasse ce code:
file=fopen("file.txt", "w");
fseek(file, 10000, SEEK_SET);
putc('A', file);

===========>>>>>RESULTAT<<<<=================
sur mon disque la taille du fichier est de 10Ko, etonnant non ???
et quand je l'ouvre, tou est vierge sauf à la position 10000 où je vois bien mon CHAR A.
C'est pourquoi j'ai voulu ouvert cette discussion pour qu'on puisse en parler. Peut fonction du compilateur ou ???? à bientôt et merci à vous
kij_82
Messages postés
4100
Date d'inscription
jeudi 7 avril 2005
Statut
Contributeur
Dernière intervention
2 septembre 2013
828
Pas étonnant non.
C'est parce que cette fonction te permet de remplir automatiquement ton fichier de vide si tu tente d'aller à un taille au délà de ce que "pèse" déjà ton fichier.

Si c'est cela que tu souhaitais faire, ma fois oui, c'est faisable. C'est juste que comme tu l'expliquais, normalement ce n'est pas faisable. Après, si tu souhaite remplir de vide ton fichier, pas de problème.
youscoul
Messages postés
125
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
7 janvier 2013
4
Effectivement c'est ce que je souhaitais faire. Je saute et après avoir la possibilité de remplir les espaces vides de mon fichier. ça y ait je suis parvenu. Merci beaucoup pour vos réponses.
fiddy
Messages postés
11137
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
18 octobre 2016
1628
Pour kij_82
C'est parce que cette fonction te permet de remplir automatiquement ton fichier de vide si tu tente d'aller à un taille au délà de ce que "pèse" déjà ton fichier.
Non, cette fonction ne permet pas celà. Si cela arrive de le voir, il s'agit d'un d'un comportement non standard.
Pour le remplir, il faut le faire manuellement avec les fonctions d'écriture.