Bonjour tout le monde,
J'ai un problème avec mes écritures de fichiers binaires en C.
Je dois écrire une sctructure C dans un fichier.
Premier réflexe, j'ai ouvert le fichier avec cette ligne:
1 2
| if((fichier_ticket=open(nom_fichier,O_WRONLY|O_CREAT|O_BINARY|O_TRUNC, S_IREAD|S_IWRITE))<0)
{puts("erreur ouverture");return(2);} |
Car j'ai lu partout sur le net que en mode texte il y avait des soucis avec les \n, \r etc ... (dtf je comptais pas faire un fichier binaire en mode texte
)
Pour écrire dans le fichier, j'utilise le code suivant:
write(fichier_ticket, &(tkt_opi.cu2), 2);
Toutes mes données sont bien écrites, sauf, malheureusement les deux caractères suivant: 0x0a, et 0x0d. Dans le premier cas, cela est transformé en 0x0d 0x0a et dans le second cas il n'apparait même pas dans le fichier.
Ayant lu partout sur le net que la solution à ce problème est de passer le fichier en mode binaire. Ayant depuis le début un fichier en mode binaire, je commence à péter un plomb
Si vous avez une petit idée du pourquoi du comment, merci de me tenir au courant ! 
Zigo ^^
Partager