flock() verstehen
Falk Brückner
- php
0 Volker
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
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
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