fwrite ajoute des caractères de fin de ligne ... [C] - C - Programmation
Marsh Posté le 12-12-2007 à 12:17:36
Tu as ouvert ton fichier en mode binary ?
http://msdn2.microsoft.com/en-us/l [...] S.80).aspx
Marsh Posté le 12-12-2007 à 13:31:23
warp a écrit : j'ai une application qui reçoit un fichier via tcp/ip. |
C'est parce que tu es sous DOS/Windows et qe tu as ouvert le fichier en mode texte ("w" ). Ouvre le en mode binaire ("wb" ) et il n'y aura pas d'ajouts intempestifs.
Marsh Posté le 12-12-2007 à 12:13:20
Bonjour,
j'ai une application qui reçoit un fichier via tcp/ip.
Je récupère un buffer, et l'écrit dans un fichier avec la fonction fwrite.
L'appel de la fonction :
fwrite(buffer, 1 buf_len, fp)
Ce qui est curieux c'est que dans le fichier crée, j'ai des caractères qui s'ajoutent à la fin de ligne.
Dans mon buffer j'ai juste CR-LF comme fin de ligne (0x0d 0x0a)
mais dans le fichier que j'écrit, j'ai CR-CR-LF (0x0d 0x0d 0x0a).
En fin de compte le fichier n'est pas le même que l'original.
Ce qui est curieux aussi c'est que fwrite me renvoit le nombre de caractères écrits,
mais il en a écrit plus (puisque à chaque fois 0x0d en plus à chaque ligne).
Je ne comprends rien et je ne sais pas où chercher.
Merci pour voitre aide.
---------------
Il n'est pas nécéssaire de réussir pour persévérer.