Tom: Datei richtig gesperrt/PHP verhalten bei flock()

Beitrag lesen

Hello,

flock($fp, LOCK_EX);

An dieser Stelle prüfst du ja gar nicht, ob das Locking erfolgreich war!! Die Funktion flock() versucht normalerweise mehrfach hintereinander die Datei zu sperren, ist dies nicht möglich, so gibt es als Rückgabewert false und das Script arbeitet weiter.

*ähähäh* :-)

flock() kennt zwei Modi:
Blocking Mode
  PHP fordert die Sperre beim OS an.
  Das wird soalnge versucht, bis Erfolg eintritt
  Die Kontrolle wird nicht vorher an das laufende Programm zurückgegeben
  Wenn es zu lange dauert, greift PHPs Timeout-Mechanismus

Nonblocking Mode
  Es wird von PHP die Sperre beim OS angefordert.
  Dieses versucht das i.d.R. einige Male in kurzen Abständen hintereinander
  Misslingt dies, wird die Kontrolle mit einem Fehlerwert an das laufende
  Programm zurückgegeben

Default ist bei PHP der Blocking Mode

Harzliche Grüße vom Berg
http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau