fwrite und fread angeblich wenig 'portabel'?
-
Ich habe gelesen, dass die Funktionen fwrite() und fread() angeblich wenig portablen Code produzieren.
Heißt das etwa, dass
-
eine Datei, die auf System A mit fwrite() geschrieben wurde,
auf einem System B nicht sinnvoll mit fread() gelesen werden kann? -
Ist sichergestellt, dass falls fwrite() auf einem System in eine Datei schreibt, wenigstens auf diesem System mittels fread() wieder die Daten sinnvoll gelesen werden können?
-
-
Es ist nicht portabel binäre Daten in eine Datei zu schreiben, da nicht sichergestellt ist, dass die Representation der Daten auf den Systemen A und B identisch ist. Stichwörter: Nicht spezifizierte Größe der eingebauten Datentypen, Padding bei Strukturen (und anderen), Endianess...
Das Problem dabei ist aber nicht fread/fwrite sondern die Daten die man damit schreibt.
-
TactX schrieb:
Das Problem dabei ist aber nicht fread/fwrite sondern die Daten die man damit schreibt.
wenn man nur byte-arrays schreibt und liest sollte das aber überall klappen...
-
ten schrieb:
TactX schrieb:
Das Problem dabei ist aber nicht fread/fwrite sondern die Daten die man damit schreibt.
wenn man nur byte-arrays schreibt und liest sollte das aber überall klappen...
außer man hat pech und benutzt ein System, das 7Bit Bytes hat und das andere 8Bit oder 12 oder 4