Réservation de mémoire pour un fichier en C

Résolu
youscoul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
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

A voir également:

2 réponses

kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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.
0
youscoul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   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
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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,
0
youscoul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   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
0
kij_82 Messages postés 4089 Date d'inscription   Statut Contributeur Dernière intervention   857
 
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.
0
youscoul Messages postés 125 Date d'inscription   Statut Membre Dernière intervention   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.
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
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.
0