002
13.07.2009, 12:28 Uhr
~GastGast
Gast
|
Hallo,
ich muss nicht wirklich die letzten 2 Zeilen löschen. Ich möchte eigentlich nur die letzte Zeile überschreiben ("</test_case>\n"), die glücklicherweise doch immer einen festen Inhalt haben. Beide zusammen sind 13 Bytes lang.
Deshalb hatte ich mir folgendes Konstrukt gedacht:
Code: |
fp = fopen("test_case.xml", "a"); if( fp == NULL ) { printf("Cannot open file.\n"); return; } /* remove the last line </test_case>\n */ fseek(fp, 0, SEEK_END); eof = ftell(fp); fseek(fp, eof - 13, SEEK_SET);
|
Meine Idee ist es einfach den Dateizeiger mit fseek umzupositionieren, wie oben im Code demonstriert. Danach verwende ich fputs um eine Zeile in die Datei einzufügen. Ich hätte erwartet, dass dann meine letzte Zeile überschrieben wird. Leider wird nur an die Datei angehängt. Meine Umpositionierung mit fseek bringt gar keinen Unterschied.
Woran könnte es liegen. Viele Grüße GastGast |