Hallo! Am Samstag, 4. Juni 2005 06:38 schrieb David Haller: [C-Code]
Achtung: ich habe das jetzt noch in der Mail etwas veraendert, kann sein, dass da Fehler drin sind.
Funktioniert. Die Ausgabe war wie in deinen Kommentaren. Der Compiler hat übrigens bei (off_t)2247483648 gemeckert: Warnung: this decimal constant is unsigned only in ISO C90 Aber das macht wohl nichts.
Aufpassen muss man nur, dass man nicht in die "sparse-file" Falle laeuft, wo AFAIK Fehler auftreten, wenn die Datei "echt" ueber 2 GB gross wird, d.h. man muesste > 2 GB schreiben...
Das ist kein Problem (hier war die Datei echt > 2GB):
==============
#define _LARGEFILE_SOURCE
#define _FILE_OFFSET_BITS 64
#include
Achso, du koenntest auch ein C-Proggie auf ne vorhandene Datei loslassen... (im Prinzip 'open' statt dem 'mkstemp' und 'read' statt 'write' nach dem lseek oben (da musst du aber dem read noch nen Buffer anlegen). Und natuerlich kein "unlink" (auch bei der Fehlerbehandlung nicht) ;)
s.o.
Bei mir klappt das uebrigens nicht, ich bekomme da
SIGXFSZ (File size limit exceeded)
und nen coredump.
Bei mir gehts gut. :-) Was nun? Gruß, Christian