Code: Alles auswählen
#include <stdio.h>
int main (void)
{
FILE *file = fopen( "datei.txt", "a" );
if( file )
{
long int size = ftell( file );
printf( "Wir befinden uns an Position %ld, die Datei ist %ld Byte groß.\n", size, size );
fclose(file);
}
else
printf( "Datei konnte nicht geöffnet werden.\n" );
return 0;
}
Nun ja, im Ergebnis weiss ich jetzt aber wie ein Zeiger im Debugger aussieht, wenn er auf nichts zeigt (0x0) und habe festgestellt, dass alle Dateien die ich vorher noch mit "a" ausprobiert habe, zwar nicht auf der Festplatte liegen (klar hab ja nichts zurück geschrieben) aber immer noch im Arbeitsspeicher rumlungern.
Punkt 2:
Die Kombination von ftell() und fseek() lässt uns zum Ende der Datei springen und dort fragen, wo wir gerade sind. Wir können so zum Beispiel mit dem Modus „r“ beim Öffnen mittels fopen() und an das Ende der Datei setzen lassen und dann fragen, wo wir eigentlich sind. Anschließend - um die Datei lesen zu können, setzen wir uns mit fseek() wieder zurück an den Anfang:
Hier ist wohl was beim Satzbau schiefgelaufen