En aras de aprendizaje de C y la comprensión de la diferencia entre archivos binarios y archivos de texto, Estoy intentando escribir una cadena de presentar ya que ambos tipos de archivos, así:¿Por qué fwrite() no escribe un archivo binario usando "wb", en C, en 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);
Sin embargo, tanto "wt"
"wb"
y están escribiendo como un archivo de texto, donde "wb"
debería estar escribiendo como un archivo binario. Hex aparece así para ambos archivos:
49 20 61 6D 20 61 20 73 74 72 69 6E 67 21
¿Por qué ocurre esto y cómo puedo escribir algo como un archivo binario?
He leído que el sistema operativo (Mac OS X 10.6 - GCC 4.2) puede no diferenciar entre archivos binarios y de texto, aunque todavía estoy perplejo por qué un editor hexadecimal no detectaría ninguna diferencia.
Me pregunto qué se espera de usted en el archivo "binario"? – Vovanium