Struppi: an die perlspezies -> Frage!

Beitrag lesen

Den wichtigste Punkt hast du vergessen. Wir sprechen von einem CGI Programm, oder?

Du musst dir überlegen, es sit durchaus möglich, das hunderte Benutzer gleichzeitig auf das Skript zugreifen. hundertmal passiert das was du beschreibst gleichzeitig. Kannst du dir das Vorstellen?

prinzip ist bekanntlich so:

Und das ist gefährlich, denn ....

man öffnet eine datei->einlesen
flockt
schliesst
es passiert was

und hier kann ein anderer Prozeß die Datei öffnen und einlesen.

datei wird wird wieder zum schreiben geöffnet
flockt
schreibt...
schliesst.endof...

und jetzt kommt der 2. Prozess und macht das gleiche und in dem Moment sind die Änderungen wieder weg.

meine frage jetzt,warum kann man nicht einfach so:
datei öffnen zum lesen und schreiben
flockt LOCK_EX
es passiert was
#kein LOCK_UN
schliesst die datei -> fertig
machen?

So sollte man es tun, dass habe ich dir auch schon mehrmals gesagt.

wär doch viel einfacher und weniger speicher fressend?!

Das ist egal, es ist nämlich nicht einfacher, da du beim lesen und schreiben immer darauf achten musst wo der Dateizeiger steht und wenn du Daten löschen willst musst du erst den Inhalt löschen bevor du die Datei neu beschreibst, da du ansonsten Datenmüll in deiner Datei hast.

warum ist das nicht üblich so?

Weil du bei CGI Programmen nie weißt was passiert.

Struppi.