PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Göße einer Datei



30-09-2000, 22:43
Dateien öffnen / lesen schön und gut aber ich hab noch nie etwas gesehen um die Größe einer Datei in C festzustellen. Gibt es eine einfache Möglichkeit?

Schon mal Danke im Voraus

01-10-2000, 19:09
Leicht aber leider auch etwas unschön:
mit einem
fseek(FILE *stream, 0, SEEK_END); // an den Schluß gehen
dann mit sich mit einem
long unsigned int datei_laenge = ftell(FILE *stream); // die Größe holen!

Wie das bei "großen" Dateien (>4 GB) anzupassen ist, steht in der c't 10/00 auf Seite 256

Sion

thommy
02-10-2000, 07:44
Man verwendet eigentlich "fstat"... (man 2 fstat)

Thomas

02-10-2000, 09:05
Danke!

Mit den grossen Dateien ist kein Problem, da ich nur prüfen muss ob meine Mail-Spool-Datei leer ist.

03-10-2000, 18:59
Hi,

Du solltest bei solchen Problemen aus einem ganz anderem Grund nach was ähnlichem suchen, dann findest Du eine einfache Lösung:
(erging mir gerade so...)
test -s /var/spool/mail/root
liefert in einem Shell-Script als $? zurück, ob die Datei größer als 0 Byte ist. Ist zwar kein C, aber schöner ;-)

Sion