Par souci d'apprentissage C et comprendre la différence entre les fichiers binaires et des fichiers texte, je tente d'écrire une chaîne de fichier en tant que les deux types de fichiers comme ceci:Pourquoi fwrite() n'écrit pas un fichier binaire en utilisant "wb", en C, sur Mac OS X?
char * string = "I am a string!";
FILE * filePtrA = fopen("/output.txt", "wt");
fwrite(string, strlen(string), 1, filePtrA);
FILE * filePtrB = fopen("/output.bin", "wb");
fwrite(string, strlen(string), 1, filePtrB);
fclose(filePtrA);
fclose(filePtrB);
Toutefois, les deux "wt"
et "wb"
écrivent en tant que fichier texte, où "wb"
doit être écrit en tant que fichier binaire. Hex apparaît comme si pour les deux fichiers:
49 20 61 6D 20 61 20 73 74 72 69 6E 67 21
Pourquoi cela se produit, et comment puis-je écrire quelque chose comme un fichier binaire? J'ai lu que le système d'exploitation (Mac OS X 10.6 - GCC 4.2) pourrait ne pas faire la différence entre les fichiers binaires et les fichiers texte, même si je suis toujours perplexe pourquoi un éditeur hexadécimal ne détecterait aucune différence.
Je me demande ce que vous êtes censé voir dans le fichier "binaire"? – Vovanium