Thread Dateioperation ?!
(9 answers)
Opened by Gast at 2008-08-20 10:49 dasa+2008-08-20 10:33:44-- Hm, das scheint mir nicht so ganz ausgereift zu sein, aber so aehnlich wuerde ich es auch machen: 1. Verschiebe Datei nach xyz.txt.tmp.$random 2. Fuehre die Datei aus 3. Loesche die Datei (also xyz.txt.tmp.$random) Wenn man dagegen abgesichert sein will, dass das Script abstuerzt, und die Datei zwar schon umbenannt ist aber nicht bearbeitet, kann man vielleicht als 0. Schritt einführen: 0. Dateien *.tmp.*, welche eine atime von mehr als ein paar Minuten (je nach dem, wie lange das Script typischerweise läuft) haben, werden wieder so umbenannt, dass das .tmp.* nicht mehr am Ende ist. Alles steht und fällt mit dem Atomarsein von rename(): Es darf nichts anderes passieren zwischen dem Prüfen auf Existenz der Datei und Umbenennen der Datei. Bei Linux ist rename() afaik hinreichend atomar dafür. Ob das in WebDAV ausgenutzt werden kann, weiß ich nicht. ($random kann natürlich sinnvollerweise aus Zeitstempel und PID und Rechnername bestehen.) Lieblingsmodule:
![]() ![]() |