Почему fwrite () не записывает двоичный файл с помощью «wb» на языке C в Mac OS X?

Ради изучения C и понимания разницы между двоичными файлами и текстовыми файлами я пытаюсь записать строку в файл как файлы обоих типов, например:

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

Однако оба "wt « и « wb » записываются как текстовый файл, где « wb » должен записываться как двоичный файл. Hex выглядит так для обоих файлов:

49 20 61 6D 20 61 20 73 74 72 69 6E 67 21

Почему это происходит и как я могу записать что-то в виде двоичного файла?

Я читал, что ОС (Mac OS X 10.6 - GCC 4.2) может не различать двоичные файлы и текстовые файлы, хотя я до сих пор не понимаю, почему шестнадцатеричный редактор не обнаружит никакой разницы.

6
задан Dave Gallagher 11 November 2010 в 19:46
поделиться