Ради изучения 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) может не проводить различий между двоичными и текстовыми файлами, хотя я все еще не понимаю, почему шестнадцатеричный редактор не обнаружит никакой разницы.