Christian Kruse: FLOCK - Betriebssystem

Beitrag lesen

你好 Steve,

Wenn ich aus einer Textdatei nur einen Wert lese, sollte man dann die
Datei dann auch sperren (LOCK_SH / Shared Lock)

Was bringt das bei reinen Lesen?

Wenn die Datei wirklich _immer_ nur gelesen wird, kannst du den Lock
weglassen. Wird sie aber auch geschrieben, dann solltest du sie sperren,
damit du nicht irgendwelchen Müll einliest. Beispiel:

Prozess a öffnet die Datei zum lesen, sperrt sie aber nicht. Nahezu
zeitgleich öffnet Prozess b die Datei zum schreiben und schreibt etwas
hinein, wird aber mitten im Schreib-Prozess vom Scheduler schlafen
geschickt. Prozess a liest nun weiter und liest die unvollständigen Daten
von Prozess b. Und schon hast du einen sehr schwer zu entdeckenden Bug in
deinen Scripten. Schwer zu entdecken ist er, weil er (ohne viel Erfahrung)
nicht reproduzierbar ist.

再见,
 克里斯蒂安

--
Buchpreisbindung? | Plasma-Bildschirm geklaut
Sobald dir ein Gedanke kommt, lache über ihn.
http://wwwtech.de/