Ecire dans un offset c
zilot2
-
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 441 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,pardonnez mon français
j'ai un fichier binaire et je veux ecire dans un offset precis
fwrite ecrit toujours a l fin du fichier y'a t il pas fonction qui permet d'ecrire a un offset voulu
je précise l'offset par exemple 0x40000 le pointeur de fichier se pointe sur cette offset et ecrire a partir de la
j'ai un fichier binaire et je veux ecire dans un offset precis
fwrite ecrit toujours a l fin du fichier y'a t il pas fonction qui permet d'ecrire a un offset voulu
je précise l'offset par exemple 0x40000 le pointeur de fichier se pointe sur cette offset et ecrire a partir de la
Configuration: Windows XP Firefox 3.5.2
1 réponse
-
Et bien le plus courant c'est fseek.
#include <stdio.h>
int fseek(FILE *stream, long offset, int whence);
Un 'man' te donnera les infos complémentaires, et aussi les autres possibilités.
Bonne continuation-
-
Oui, j'avais, pour une fois, compris la question, et ma réponse n'a pas changé.
Tu peux lire: fseek
Fabrique un fichier "test.txt" et essaie l'exemple:#include <stdio.h> #include <stdlib.h> int main() { FILE* ffich; ffich = fopen("test.txt", "r+"); fseek(ffich, 64L, SEEK_SET); fprintf(ffich, "<<< taïaut oh taïaut >>>"); return(0); }Bonne continuation. -
-
-
Quel est le problème ?
Si j'ai pris l'exemple avec un fichier 'texte', c'est simplement par facilité de construction et de vérification. Je n'ai fait aucune hypothèse sur le type de fichier.
La seulle difficulté est d'écrire le '0x00' qui ne fonctionnera pas avec 'fprintf' car c'est le caractère de fin de chaîne. Pour contourner cette petite difficulté, il suffit d'utiliser la fonction 'fputc', ce qui donnera:fputc('0x48', ffich); fputc('0x49', ffich); fputc('0x00', ffich);Quoi de plus simple ?.
-