Datei öffnen/Speicher reservieren
-
Hallo
Bin noch ein ziemlicher C Newbie. Wie läuft das eigentlich, ich will eine Datei öffnen und Zeile für Zeile in einen char Zeiger einlesen. Wie krieg ich vorher raus wie viel Speicher ich malloc()en muss?
-
afaik in Standard C garnicht..
reserviere dir einfach 4KB und lies die aus. Ist die Datei noch nicht am Ende, mach nen realloc und lies die nächsten 4kb aus (nicht vergessen, dass dein Pointer auf den Buffer-Anfang zeigt), etc...
-
du könntest auch mit den funktionen fseek() ftell() die größe der Datei ermitteln
und dann mit malloc() entsprechenden Speicher reservieren.
-
curry-king schrieb:
du könntest auch mit den funktionen fseek() ftell() die größe der Datei ermitteln
und dann mit malloc() entsprechenden Speicher reservieren.Gib mal fseek() und ftell() hier im Forum in der Suche ein, dann findest du sicher ein paar Beiträge, die erklären, warum man das nicht machen sollte!
-
Ok, danke, wieder was gelernt.
fseek() und ftell() können bei meiner genannten Anwendung zu undefiniertem Verhalten führenWas ebenfalls unschön ist, das die Datei 2 mal durchlaufen werden muss.