Hallo Tom
Vielen Dank für Deine hilfreichen Infos. Nun ist mir auch einiges klarer, denn
Hier wurde die Datei ohne Rücksicht auf Sperren eingelesen. Das bedeutet, dass während dieses Lesevorganges ggf. jemand anders die Datei beschreiben hat.
Hier wurde die Datei einfach zum Schreiben geöffnet und damit zerstört, unabhängig davon, ob gerade jemand anders liest.
genau das habe ich vermutet. War anfänglich kein Problem, da nur zwei, drei Spieler täglich das Quiz (darum geht es) spielten, gestern Abend z.B. jedoch gleich 5 Spieler gleichzeitig.
Da man die Datei nicht löscht, bevor sie nei geschreiben wird, empfihlt es sich, den ggf. überstehenden Rest nach dem Neuschreiben mit ftruncate() wieder abzuschneiden.
Im meinem konkreten Fall dürfte das zwar nicht nötig sein (es sind immer gleich viele Records mit gleicher Länge), aber sicher ist sicher ...
Es sollte also tunlichst keine andere Applikation auf die Dateien (schreibend, löschend) zugreifen, als dafür vorgesehen ist.
Das ist gewährleistet und das File ist auch gegen (böswillige) externe Zugriffe in einem eigenen Unterverzeichnis ziemlich gut geschützt mit .htaccess.
Zusatz-Frage: Gehe ich recht in der Annahme, dass, solange das File gesperrt ist, die weiteren Zugriffe anderer User automatisch in eine "Warteschlange" gesetzt werden, bis das File wieder entsperrt ist?
Dankende Grüsse
René