Tom: datei beim auslesen sperren?

Beitrag lesen

Hello cr,

wenn ich mittels fopen eine txt datei öffne und diese nur auslese (z.b. über ein abfrageformular auf einer internetseite) und dies mehrere personen tun können (auch evtl. gleichzeitig oder kurz nacheinander), sollte man dann die datei beim aufrufen jedesmal sperren?

und wie ist es, wenn man in die datei schreibt?

Die Antwort ist abhängig von der Wahl des Sperrmechanismus.
Die üblichen Linunx-Systeme nutzen per default das "Advisory Locking". Das liegt formal neben dem Dateisystem als eigenes Informationssystem für die Applikationen, sollte genutzt werden, aber kann umgangen werden. Man kann aber auch das "Mandatory Locking" benutzen, lässt sich auch bei Linux einschalten...

I.d.R. benutzen andere Filesysteme (Windows FAT32, NTFS, NOVELL DS, ...) Mandatory Locking.

Wenn eine Datei mit Mandatory Locking schreib-lese-gesperrt ist, kann keine andere Applikation darauf zugreifen, solange diese Sperre besteht, egal, ob sie selber daran gedacht hat, oder nicht.

Beim Mandatory Locking kann jede Applikation lesen und schreiben, auch wenn Sperren bestehen.
Linux geht hier ohnehin von einem anderen Ansatz aus:
Alle Dateien, die zum Lesen UND Schreiben erreichbar sind, sind geminsames Gut und daher auch gemeinschaftlich pfleglich zu behandeln. Wenn ein User eine Datei nbicht beschreiben darf, dann nimmt man ihm das w-Recht im Dateisystem.

Da PHP(Modul) und der Apache hier im Normalfall aber alle Anfragen über HTTP ein und demselben User zuordnen, muss man auf Applikationsebene agieren. Ich würde daher den Rat geben, alle Dateien, die über HTTP geöffnet werden sollen, immer dem Mandatory-Zyklus zu unterwerfen. JEDE Applikation, die Zugriff nehmen darf, MUSS sich daran halten, sonst hat es keinen  Zweck.

Mach Die also von Anfang an zur Gewohnheit, die Sperren zu setzen, abzufragen und zu beachten. Das erspart Dir später Kummer, wenn das System wächst.

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

Tom

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