Hello,
if (!flock ($fp, LOCK_EX)) {
die ('Sperren der Datei fehlgeschlagen!');
}
Also: Es gibt 3 Möglichkeiten:
c) Der Aufruf kehrt zurück und ein Fehler beim Sperren ist aufgetreten.
Dies kann zum Beispiel passieren, wenn man fopen-Wrapper verwendet
und versucht, eine Datei über FTP zu öffnen - da funktioniert das
Sperren nämlich gar nicht (FTP kann so etwas nicht). Oder es kann
passieren, wenn man's unter Windows 98 versucht.
Die Möglichkeit habe ich eben nicht bedacht, das stimmt.
Meine Überlegung war "Wenn fopen() versagt (die Datei nicht da ist), gehe ich gar nicht zum flock()".
Aber das ist eben nicht zuende gedacht, weil die Datei zwischen dem erfolgreichen fopen() und dem flock() auch schon wieder verschwunden sein könnte oder sonstiges...
Bleibt noch eine Frage: Was macht flock( ... LOCK_EX + LOCK_NB), wenn bereits ein dio_lock gesetzt ist? Theoretisch könnte es ja sagen: Lockanfoerderung nicht möglich, aber ich glaube, es wartet trotzdem (so war es bei PHP4).
Kannst Du das ausprobieren oder besser auch nachschauen?
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)