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

Beitrag lesen

Hi AllesMeins,

Wie genau arbeitet flock da?

Wie flock() genau arbeitet weiß ich nicht - ich meine lediglich zu wissen, dass es unter Windows nicht, oder nicht richtig arbeitet.

Also klassischer Fall, die Datei ist bereits gesperrt. Eine zweite Instanz des Scriptes ruft flock() auf. Gibt flock() dann einfach 'false' zurück oder wartet es. Bzw. sollte nicht schon fopen() warten, wenn die Datei gesperrt ist?

fopen() wartet überhaupt nicht, fopen() macht gnadenlos das was es soll, es öffnet die Datei. Wenn du dann mit fwrite darin herumarbeitest, dann wird das auch gemacht - fertig. Die Aufgabe des Programmieres ist es vor irgendwelchen Aktionen mit der Datei diese zu sperren, das macht flock(). flock() gibt true zurück, wenn das gemacht werden konnte, was sollte (Datei für Lese oder Schreibzugriff sperren) oder false, wenn das nicht gelungen ist. Mit LOCK_NB sollte direkt false zurück gegeben werden, ohne LOCK_NB probiert flock() es soweit ich weiß mehrfach.

MfG, Dennis.