Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
803 connectés 

  FORUM HardWare.fr
  Programmation
  C

  mmap et fin de fichier !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

mmap et fin de fichier !

n°2147197
danielv888​8
Posté le 26-06-2012 à 16:58:06  profilanswer
 

Bonjour
je suis nouveau sur ce forum et je m'adresse à vous ne trouvant pas de doc sur le sujet que je vais vous présenter.
 
Alors voila, je viens de découvrir la fonction c mmap() pour mapper des fichiers en memoire. J'ai fais quelques essais, lire et écrire la 1er page, passer a la seconde, aller a la derniere toujour en lecture et ecriture etc, pas de probleme. Pourtant quand j'ajoute un enregistrement a la fin du fichier en allouant une page avec une offset en dehors du fichier , j'ai un “segmentation fault”, en fait non cette erreur survient quand j'écris dans cette page ! Sinon l'allocation est acceptée.
Comment je fais pour ajouter une nouvelle page dans un fichier alors ?
Ne me dites pas qu'il faut utiliser la fonction c write() pour ecrire un octet a la nouvelle position dans le fichier, puis faire le mappage. Si c'est ca “pas tres élégant”
 
D'avance merci

mood
Publicité
Posté le 26-06-2012 à 16:58:06  profilanswer
 

n°2147243
gilou
Modérateur
Modzilla
Posté le 26-06-2012 à 22:56:55  profilanswer
 

On peut faire ça de manière brutale, en "étendant" le fichier avec la place nécessaire aux ajouts avant le mmap.
Regardes cet exemple: http://www.linuxquestions.org/ques [...] -c-511265/
Mais de toute façon, mmap n'est pas fait pour cela: http://stackoverflow.com/questions [...] ile-access
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
n°2147248
danielv888​8
Posté le 27-06-2012 à 01:46:55  profilanswer
 

voila, je viens de trouver une façon d'augmenter la taille d'un fichier avant de mapper cette nouvelle page "ftruncate(fd,FILESIZE+...)" plus élégant qu'un  
<c>
lseek(fd, FILESIZE-1+..., SEEK_SET);
write(fd,"",1);
</c>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  mmap et fin de fichier !

 

Sujets relatifs
Lecture, insertion/création fichierRécupérer tous les noms de fichier dans un dossier
[VBA] Enregistrement de valeurs dans un fichier texteLire un fichier en Shell avec une boucle
lancer un programme via un fichier externeLire un fichier sur serveur FTP
[BATCH] Recherche dans un fichier textemodifier un fichier xml
Insérer fichier en xml sur une page en htmlChemin de fichier en variable
Plus de sujets relatifs à : mmap et fin de fichier !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR