Erik Wagner: Problem mit Dateilänge (Optimierungsfrage...)

Beitrag lesen

Hallo Leute!

Ein kleines Problem: In einem Perl-Script lese ich aus Datei A Daten aus, modifiziere diese und schreibe sie in Datei B. Die geänderten Daten aus Datei B müssen aber wieder in Datei A zurück.
Das Problem dabei ist, daß Datei A dabei die ganze Zeit geöffnet bleibt (im lese/schreib-Zugriff) und wenn ich die Daten aus Datei B in Datei A zurückschreibe (vorher bin ich natürlich mit seek an den Datei-Anfang zurückgesprungen) und die geänderten Daten ingesammt kürzer als die Originaldaten geworden sind, habe ich ja einen Rest der alten Daten aus Datei A noch am Ende in Datei A stehen. Um diese wegzubekommen benutze ich die Funktion "truncate" die als Wert die Länger von Datei B erhält. Die Länge von Datei B habe ich bisher mit der Funktion "stat" herrausbekommen. Allerdings erscheint mir das etwas umständlich, Datei B immer erst schließen zu müssen, dann die Funktion "stat" aufrufen und dann Datei B wieder öffnen.

Meine Frage nun: gibt es eine Variable oder eine Funktion von der ich einen Wert bekomme, der mier sagt, wieviele Bytes ich am Stück in eine Datei (in diesem Fall Datei B) geschrieben habe!? Dann könnte ich nämlich Datei B auch im lese/schreib-Modus öffnen und könnte mir die Funktion "stat" sparen und spare mir ein unnötiges schließen und öffnen von Datei B...

Vielen Dank schonmal im Vorraus
Ciao, Servus, JHMF