strathmore
Goto Top

Grosse Dateien mit fopen() öffnen

Gross bedeutet >= 2GB

Hallo werte Forumuser,

in einem vom mir geschriebenen C Programm gibt es folgendes Statement:

srcfile = fopen(dateiname, "rb+");

Dateien, die KLEINER als 2GB sind, werden problemlos geöffnet, wird die 2GB Grenze erreicht oder überschritten, werden sie nicht mehr geöffnet.

Compiler: gcc, Version 4.1.2
BS: Linux, Debian Etch
Prozessor: Intel 32 Bit

Weiss jemand woran das liegt, bzw. Abhilfe?

Vielen Dank im Voraus.

Content-ID: 109645

Url: https://administrator.de/contentid/109645

Ausgedruckt am: 27.11.2024 um 08:11 Uhr

lowbyte1
lowbyte1 21.02.2009 um 16:44:49 Uhr
Goto Top
hi

Probier mal ." gcc-D_FILE_OFFSET_BITS = 64-o main main.c "

http://publib.boulder.ibm.com/infocenter/zos/v1r10/index.jsp?topic=/com ...

lowbyte
ITwissen
ITwissen 21.02.2009 um 18:06:49 Uhr
Goto Top
Grob gesagt, auf einem 32bit System ist bei 2GB Schluss.
lowbyte1
lowbyte1 21.02.2009 um 18:22:09 Uhr
Goto Top
hi


lowbyte
Strathmore
Strathmore 21.02.2009 um 19:44:30 Uhr
Goto Top
Hallo!

Erstmal vielen Dank für die Hinweise. Der Erste hat mir auch am meisten geholfen -> Suche bei gcc nach einer Option um grosse Dateien zu unterstützen. Es gibt ja schliesslich andere Programme auf meiner Maschine, die mit grossen Dateien umgehen können, Bsp. xine oder vlc.

Lösung: Den unveränderten Code folgendermassen zu übersetzen:

gcc -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 filecheck.c -o filecheck -Wall --pedantic --ansi

Danke nochmal und viele Grüße aus Berlin.