Re: Einlesen aus Datei > 2GB
Christian Schneider <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Hallo!
Am Donnerstag, 2. Juni 2005 16:53 schrieb Dierk Fröhling:
> Michael Wenger wrote:
> > Christian Schneider schrieb am 02.06.2005 15:33 :
> >> Wie lese ich aus Dateien > 2GB bzw. schreibe in diesen? Bei
> >> C-Funktionen wird scheinbar nur ein long zur Positionierung
> >> verwendet, also ist da auch bei 2GB Schluss?
> >
> > Das hängt extrem vom verwendeten Compiler ab. Ab g++ 3.4 sollte es
> > mit
> >
> > C++ möglich sein. Auf [1] steht zumindest dies:
> > | Large File Support (files larger than 2 GB on 32-bit systems).
Werde mal einen neueren installieren.
> > Für den gcc gibt es Compilerflags:
> > -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
Die muss ich bei gcc >= 3.4 mit angeben? Wo ist sowas dokumentiert (auf
gcc.gnu.org findet sich dazu nichts)?
> > [1] http://gcc.gnu.org/gcc-3.4/changes.html
>
> Außerdem könnte es am Filesystem liegen. ext2 hatte früher z.B. ein
> 2GB-Limit...
Nein, das spielt mit. Die Datei ist schon vorhanden und liegt auf einem
recht neuen (= jünger als 2 Jahre) ext3 Dateisystem.
> Falls das Filesystem mitspielt, könnte evtl. auch Memory Mapped I/O
> helfen (einfach mal man mmap und weitere...). Dann verhält sich die
> Datei wie Speicher (also wilde Zeigerspiele!).
Das werde ich mal im Hinterkopf behalten, allerdings wäre mir was
halbwegs idiotensicheres schon lieber. Das mit den Zeigern klingt gar
nicht danach. ;-)
Danke für die Hinweise.
Gruß,
Christian
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
[email protected]
Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken
Sie eine Mail an: [email protected]