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

Beitrag lesen

Hiho,

folgendes Problem. Ich habe folgendes Script geschrieben um das rückwärts runterzählen eines Wertes zu realisieren:

$fp = fopen("datei","r+");
flock($fp, LOCK_EX);
$count = chop(fread($fp, 1024));

$count--;
if($count == 0){
   //Führe Aktionen aus, setzte neuen Startwert
[...]
   $count = mt_rand($min,$max);
} elseif($count < 0){
   echo "Fehlerhafte Anzahl!";
}
rewind($fp);
ftruncate($fp,0);
fwrite($fp, $count);
fclose($fp);

Das hat auch einoige Monate wunderbar und problemlos funktioniert. Doch in den letzten Tagen stelle ich immer wieder fest, dass - ohne ersichtbaren Grund - plötzlich negative Zahlen in der Datei auftauchen. Das geschieht auch wenn die Zahl eigentlich noch weit entfernt ist von 0 (so im Größenbereich von 12000 oder so) und scheinbar scheint er auch die 0 zu überspringen, denn die Aktionen die eigentlich bei 0 passieren treten auch nicht auf.

Das ganze ist mir ein ziemliches Rätsel. Irgend eine Idee woran das liegen könnte? Oder andere Vorschlkäge wie ich dieses Zählscript stabiler bekommen könnte?

Grüße

Marc