Bonjour,
Je cherche à gérer un fichier comme s'il s'agissait d'un buffer circulaire, dont la taille des slots et le nombre de slots seraient fixés, et dans lequel j'irai écrire une chaîne de caractère de taille variable dont la longueur maximale ne dépasserait pas la taille d'un slot.
Pour plus de compréhension, il faut imaginer que le fichier pourra par exemple stocker au maximum 10 messages de 512 caractères maximum sauf que lorsque j'enregistre un message, sa taille est variable.
De plus, étant donné qu'il s'agit d'un "buffer circulaire", je ne veux pas écraser mes messages précédents lorsque je recommence une écriture depuis le début du fichier (arrivé à la fin du buffer).
Pour gérer cela, j'ai essayé d'utiliser la fonction fseek en me disant qu'elle pourrait me permettre de me déplacer de slot en slot (de 512 carac. max chacun) à l'intérieur de mon fichier. Cependant, en pratique, la fonction ne permet apparemment pas d'écrire au delà du caractère EOF d'après ce que j'ai pu voir sur certains sites.
C'est-à-dire que si j'ai un 1er message de taille 256, que je l'enregistre au début de mon fichier et que pour le suivant, de taille 412, j'essaie de l'enregistrer à la position 512 (taille d'un slot) via l'utilisation de la fonction fseek, je n'ai pas d'erreur mais quelque-chose se passe mal.
En effet, quand j'affiche le contenu de mon fichier, je vois des caractères bizarres à la place de mon 1er message alors que le 2ème est correcte.
Avez-vous une idée qui pourrait m'aider ?
Merci,
Partager