2010-11-28 13 views
9

Ich habe seit Monaten versucht, eine kleine C- oder C++ - Bibliothek für plattformunabhängige Binärdatei-E/A zu finden, also Endian-Swapping und mit festen Größen .C/C++ - Bibliothek für plattformunabhängige binäre E/A-Dateien

Ich weiß, dass große Bibliotheken wie wxWidgets und Qt sie haben, und dass Sprachen wie Java und C# auch sie haben, aber ich würde lieber eine kleine Bibliothek anstelle eines riesigen Frameworks verwenden.

+0

Oh, über 7 Jahre sind vergangen ... Hast du es gefunden? – kbec

Antwort

1

Warum nicht einfach fstream verwenden, das mit allen C++ - Compilern ausgeliefert wird. Sie legen einfach das ios :: binary-Flag fest und nutzen sizeof in großem Umfang, um das Betriebssystem unabhängig zu machen. Z.B .: http://courses.cs.vt.edu/~cs2604/fall02/binio.html und http://www.codersource.net/c/c-tutorial-on-file-operations/c-file-i-o-binary-files-using-fstream.aspx

+1

Nach meiner Erfahrung wird die Verwendung von fstream sehr unordentlich (lange und sich wiederholende Zeilen, viele Casts), auch ohne plattformabhängige Dinge zu handhaben. – testtesttes

+1

Keine Notwendigkeit, Binäreingabe IMO zu übersetzen. Gehen Sie einfach die Std-Bibliothek hier. – rubenvb

+2

Weil es ein massiver Schmerz in den Arsch ist, und nicht einmal mit binären arbeiten, ohne auf ekelhafte Hacks wie Casting der Int zu einem Char ... – MarcusJ

3

Werfen Sie einen Blick auf Boost.Serialization

eine seiner Ziele ist „Data Portability - Streams von auf einer Plattform erstellt Bytes sollten auf einem anderen lesbar sein.“

Es gibt auch Links zu anderen Bibliotheken, die ähnliche Funktionen bieten.

+10

Wow! Was für ein perfektes Beispiel für eine * winzige * Bibliothek für I/O :) – valdo

1

Für die meisten Dateiformat Arbeit, die ich lieber SQLite verwenden: http://www.sqlite.org/ die kühle Sache ist, dass Sie die gleiche Datendatei für alle Betriebssysteme und Programmiersprachen zugreifen können und Geräte.

+0

SQLite ist nicht nützlich für die Speicherung der Art von Daten wie Voxel Volumes –

Verwandte Themen