Re: Einlesen aus Datei > 2GB
Ralf Corsepius <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
On Fri, 2005-06-03 at 16:56 +0200, Christian Schneider wrote:
> 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
z.B. in /usr/include/features.h
> (auf gcc.gnu.org findet sich dazu nichts)?
Es ist ein glibc-Feature und ein Kernel-Feature, mit dem GCC nur sehr
entfernt etwas zu tun.
Durch die defines teilst du der GLIBC über den Compiler mit, dass davon
ausgegangen wird, dass der Kernel "large files" (>2GB) unterstützt.
> > > [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...
Sehr lange ist's her.
> Nein, das spielt mit. Die Datei ist schon vorhanden und liegt auf einem
> recht neuen (= jünger als 2 Jahre) ext3 Dateisystem.
Auf den Kernel kommt es an ...
Bei SuSE gab es da mal eine "4GB"-Kernel o.ä.
Ralf
--
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]