fwrite und fseek



  • Hallo,

    ich habe eine Struktur, die ich in eine Datei speichere.

    Am Ende der Datei schreibe ich in die Structur last_line und -1 um bei der Ausgabe das Ende zu erkennen. Ich weiß, dass ich das auch über den Rückgabewert von fread erkennen kann, möchte aber die Arbeitsweise der Funktionen verstehen.

    Wird die Datei zum Anhängen geöffnet, gehe ich mit fseek(pfile,-size_Auto,SEEK_END)an das Ende der Datei, um ein Strukurfeld zurück und schreibe dort mit fwrite() die neuen Einträge. Es wird aber trotzdem immer wieder ganz am Ende der Datei angehangen. Ich habe die Position des pointers mit ftell() schon überprüft. Schreibt fwrite() nicht in auf die mit fseek() festgelegt Position?

    Bei bedarf poste ich auch den Progcode.

    Grüsse pt



  • Wenn eine Datei mit "a" geoeffnet wird, wird _immer_ angehaengt. Oeffne sie doch einfach zum schreiben...



  • Manchmal sieht man den Wald vor lauter Bäumen nicht.

    r+ ist super.

    Nun bin ich bei remove um eine Datei zu löschen. Sieht ganz einfach aus, aber, muss ich den Pfad angeben, oder wird die Datei wie bei "fopen()" in dem Ordner gelöscht, in der auch das c-prog liegt?



  • Das mit den Pfadangaben verhält sich genauso wie bei fopen(). Wenn du einen relativen Pfad angibst (z. B. nur den Dateinamen), dann wird das aktuelle Verzeichnis (wobei das nicht zwingend das Verzeichnis ist, in dem dein Programm liegt) verwendet.


Anmelden zum Antworten