Tag Archives: Microsoft

Text vs. Binary

Einer der täglichen Stolpersteine auf dem Weg zum C-Guru, hat mich gerade eine Stunde Lebenszeit gekostet. Vergleiche:

fopen( "header.bin", "wb" )

mit

fopen( "header.bin", "w" )

und dann noch den Auszug aus C in a Nutshell

The mode string may also include b as the second or third letter (that is, "ab+" for example is the same as "a+b"), which indicates a binary file, as opposed to a text file. The exact significance of this distinction depends on the given system.

»The given system« in diesem Fall Microsoft Visual C++® 6.0 unter Windows XP. Und was macht das, wenn man das b weg lässt? Es fügt vor jedes 0x0A, das man mit fwrite() in eine Datei schreibt, selbständig ein 0x0D ein, damit aus dem LF auch brav ein CRLF wird. Und ich wunder mich, warum meine Dateien größer sind, als sie sein sollten …