FrankS: flock vorhanden, aber Datei schon 2x gelöscht ?

Beitrag lesen

Hi!

Auf genau diese Verfahren wollte ich auch hinaus, nur mit SELFdenken. Auch ich benutze es seit einiger Zeit problemlos, auch schon unter richtiger Last.

open(FILE, "+< clicks.txt");
zum gleichzeitigen Lesen und schreiben, sperre sie mit flock(), lies sie wie gewoehnlich ein, schliesse sie NICHT, sondern setze mit
  seek(FILE, 0, 0);
den Dateizeiger an den Anfang zurueck, schreibe alles was Du loswerden willst. Jetzt muss Du die Datei abschneiden, denn wenn der neue Inhalt kuerzer ist als der alte, bleibt das, was hinter dem jetzigen Dateizeiger war, auch weiterhin stehen. Also
    truncate(FILE, tell(FILE));      # immer schoen perlfunc lesen ;-)
und jetzt endlich die Datei schliessen.

Oder :

[...]
seek (FILE,0,0);
truncate(FILE, 0);
print FILE, "stuff";
close FILE;

flock FILE, 2;
                  ^  Wuerdest Du die LOCK_* Konstanten verwenden (mit     use Fcntl ':flock'; importieren), wuesste man, was das bedeuted, ohne erst in der Referenz nachzuschauen.

das beruhigt - ich musste auch erstmal nachlesen, sowas hat ja keiner in Kopf - oder?

Gruß Frank