[C] fwrite ajoute des caractères de fin de ligne ...

fwrite ajoute des caractères de fin de ligne ... [C] - C - Programmation

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.
Reply

Marsh Posté le 12-12-2007 à 12:13:20   

Reply

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


Message édité par Elmoricq le 12-12-2007 à 12:19:39
Reply

Marsh Posté le 12-12-2007 à 13:31:23    

warp a écrit :

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).


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.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed