Frage

In Perl:

Ich habe eine Datei im Lese- / Schreib, mit einer exklusiven Sperre geöffnet.

open( $f, "+< $filename" );
flock( $f, LOCK_EX );

Wenn ich mehr Daten in die Datei schreiben, als es vorher gehalten wird, wird die Datei wachsen.
Wenn ich weniger Daten schreibe, sind meine neuen Inhalte am Anfang, aber die alten Inhalte sind immer noch da am Ende der Datei.

Dies ist nicht verwunderlich, aber es ist nicht das, was ich will.

Gibt es eine einfache Möglichkeit, die Datei zu schrumpfen, während es im Lese- / Schreib geöffnet wird? Grundsätzlich mag ich es sagen, die Datei genau an dieser Byte-Position zu beenden.

Ich weiß, dass ich es anders öffnen kann, und ich überlege, das zu tun, aber eine eine Zeile fix wäre schön.

War es hilfreich?

Lösung

Andere Tipps

Ich weiß eigentlich nicht über Perl, aber da ftruncate(2) würde die C-Funktion, vielleicht dieser hilft?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top