Falk Brückner: flock() verstehen

Hallo,

folgendes habe ich mir ausgedacht, um die Verriegelung zu testen:

$fp=fopen("dat.htm","r");
   flock ($fp,2);
  
   #zeugsmach

sleep (30);
   fclose ($fp);
  
Das geht, und verriegelt prima.

Mein Problem: greift ein anderes Programm mit  $liste=file("dat.htm"); zu, wird eine leere Liste zurückgegeben.
Wie kann ich prüfen (und gegebenenfalls warten), wenn eine Datei gelockt ist ?

(Ok: if (!sizeof($liste)) loop .. aber geht sicher auch besser)

Wird eventuell defaultmäßig ein paar zehntelsekunden gewartet, und erst danach die leere Liste zurückgegeben ?

schonmal danke,
Falk

  1. Hallo Falk,

    mit

    $fp=fopen("dat.htm","r");
       $v=flock ($fp,2);

    ist $v=false, wenn die Datei erfolgreich locked wurde.
    ... erzählt mir meine Referenz ;-)

    Schönen Gruß, Volker

    1. Hi,

      ist $v=false, wenn die Datei erfolgreich locked wurde.

      danke erstmal, aber das ist nicht die Lösung, die ich gesucht habe. (Es wäre ja wieder eine Schleife, die solang abläuft, bis der lock frei ist)

      Vielleicht gibt es eine Art sleeptillunlocked($fp) ? Oder einen ganz anderen Lösungsansatz ?

      Falk