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-Key: 109645

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

Printed on: April 23, 2024 at 07:04 o'clock

Member: lowbyte1
lowbyte1 Feb 21, 2009 at 15:44:49 (UTC)
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
Member: ITwissen
ITwissen Feb 21, 2009 at 17:06:49 (UTC)
Goto Top
Grob gesagt, auf einem 32bit System ist bei 2GB Schluss.
Member: lowbyte1
lowbyte1 Feb 21, 2009 at 17:22:09 (UTC)
Goto Top
hi


lowbyte
Member: Strathmore
Strathmore Feb 21, 2009 at 18:44:30 (UTC)
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.