Binärdaten aus Datei lesen >10GB
-
Hallo,
ich stehe vor dem Problem binäre Daten mit ifstream aus einer Datei zu lesen die größer 10 GB ist. Meine Frage hierzu wäre ob das überhaupt mit den C++ "Bordmitteln" geht?
Mein System ist momentan WinXP 32-bit und MS Visual Studio 2005 Express.
Ich kann mir schon vorstellen dass es nicht möglich ist den Filepointer mit seekg() über eine bestimmte Grenze hinaus zu verschieben (btw. wie groß ist die Grenze für eine Datei damit tellg() nicht -1 zurück liefert?).
Hätte ich mit einem 64-bit Bestriebssystem (wäre in dem Fall Linux) mehr Chancen dies zu bewerkstelligen?Danke schon mal vorab und Gruß
Matze
-
Vielleicht hiermit? http://en.wikipedia.org/wiki/Memory-mapped_file
-
ich kann mir gut vorstellen, daß seqzentielles binäres lesen und schreiben locker geht, soweit du magst.
nur der direktzufriff wohl nicht.
was ergibt bei dir dennifstrean in("ghsdui8sdgui"); cout<<sizeof(in.tellg());?
wenn da 4 kommt, kannste wohl mit deiner standardlib nur bis 2G adressieren, also direkt hionspringen.
-
hmmmm,
da kommt bei mir 24 als Ergebnis raus!
-
MatzeGTO schrieb:
24

-
volkard schrieb:
MatzeGTO schrieb:
24

pos_type tellg();
sizeof(tellg()) == 24
