mmap et fin de fichier ! - C - Programmation
Marsh Posté le 26-06-2012 à 22:56:55
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+,
Marsh Posté le 27-06-2012 à 01:46:55
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>
Marsh Posté le 26-06-2012 à 16:58:06
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