Thread DIR bzw. FILE sperren?: flock(...);
(10 answers)
Opened by BratHering at 2005-11-21 19:58
Bei Unix ist es so, dass eine Datei unwiderruflich verschwindet, wenn der letzte Link auf sie verschwindet. Solange du dann noch einen FileHandle offen hast, existiert die Datei (irgendwie), aber mit dem close() ist sie weg.
Kleine Demonstration: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 open(X, ">/tmp/bla") or die $!; print X "hallo"; close X; # Datei /tmp/bla existiert system("ls -al /tmp/bla"); open(X, "</tmp/bla") or die $!; unlink "/tmp/bla"; # letzter Link auf der Festplatte ist weg, aber der Filehandle ist noch da system("ls -al /tmp/bla"); # findet /tmp/bla bereits nicht # funktioniert while(<X>) { print STDERR $_, "\n"; } # funktioniert auch seek X, 0, 0; while(<X>) { print STDERR $_, "\n"; } close X; # jetzt ist sie wirklich weg |