Hallo,
ein Problem habe ich momentan eigentlich nicht, möchte aber schonmal vorsorgen. Derzeit öffne ich Dateien sowohl zum Schreiben als auch zum Lesen per open und anschließendem flock.
Seit einiger Zeit denke ich mir dabei schon, dass es doch theoretisch möglich sein müsste, dass ein anderer Prozess genau zwischen dem open und dem flock auf eine Datei zugreift und z.B. Änderungen darin vornimmt. Angenommen dieser andere Prozess schreibt nun neue Inhalte in die Datei, dann erfahre ich davon - das open ist ja schon lang vorbei - doch überhaupt nichts mehr. Danach kommt mein flock und ich schreibe brav meine Daten in die Datei ohne auch nur mitzubekommen, dass ich damit neuere Daten komplett übersehe.
Daher meine Frage: Hab ich mit der Vermutung, dass dies theoretisch so möglich ist (auch wenn praktisch vielleicht eher unwahrscheinlich) recht und wenn ja, kann man was dagegen tun? Wenn man das kann, dann wie?
Dank schonmal,
Pete
User since
2003-08-04
14371
Artikel
ModeratorIn
User since
2003-08-04
12208
Artikel
Admin1
das open() öffnet die datei. readline (bzw. <>) liest aus der datei.
dazwischen kommt das flock.
das einzige, was dir probleme machen kann, ist die position des filehandles.
also am besten vor dem schreiben ein
seek FH, 0, SEEK_END
machen, wenn du ans ende anhängen willst.