Dla dobra nauki C i zrozumienie różnicy między pliki binarne i pliki tekstowe, jestem próby zapisu ciąg do pliku jako obu typów plików tak:Dlaczego fwrite() nie pisze pliku binarnego za pomocą "wb", w C, na 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);
Jednak są pisanie zarówno "wt"
i "wb"
jako plik tekstowy, gdzie "wb"
powinien zapisywać jako plik binarny. Hex wygląda tak dla obu plików:
49 20 61 6D 20 61 20 73 74 72 69 6E 67 21
Dlaczego tak się dzieje i jak mogę napisać coś jako plik binarny?
Przeczytałem, że system operacyjny (Mac OS X 10.6 - GCC 4.2) może nie rozróżniać plików binarnych i tekstowych, chociaż nadal jestem zakwestionowany, dlaczego edytor heksadecymalny nie wykryłby żadnej różnicy.
Zastanawiam się, czego oczekuje się w pliku "binarnym"? – Vovanium