Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6080[/thread]

flock(): nur beim schreiben oder auch beim lesen?



<< >> 4 Einträge, 1 Seite
Froschpopo
 2004-02-17 16:11
#80192 #80192
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
Hi, ich habe eine Datei Die sehr häufig benutzt wird. Deshalb benutze ich die Funktion flock(). Nun meine Frage: Bisher benutze ich die Funktion nur beim Schreiben in die Datei. Ist es auch empfehlenswert, flock() beim _nur_lesen_ anzuwenden?

Vielen Dank
DemoFreak
 2004-02-17 16:35
#80193 #80193
User since
2003-09-06
54 Artikel
BenutzerIn
[default_avatar]
IMHO nicht, wozu auch? Lesender Zugriff kann die Datei ja nicht verändern, daher brauchst Du sie auch nicht sperren.

Würde ich mal so aus'm Bauch raus sagen... ;)
Gruss, Hannes
Crian
 2004-02-17 17:31
#80194 #80194
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
Eventuell solltest Du eine Funktion anbieten, wie sie auch verschiednene Editoren haben, die im Hintergrund überprüft, ob sich die Datei ändert (modification  time beim einlesen merken und ab und an überprüfen) und dann im Falle einer Änderung anbieten, die aktualisierte Version neu einzulesen.\n\n

<!--EDIT|Crian|1077031936-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Strat
 2004-02-17 20:55
#80195 #80195
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
flock solltest du auch beim lesen verwenden, weil du sonst nicht sicherstellen kannst, was fuer einen zustand die datei hat (wurde schon geschrieben, wird gerade geschrieben, ...) und so einen eventuellen inkonsistenten stand bekommst (z.B. halbe zeile geschrieben, ..).

flock funktioniert nur, wenn sich alle beteiligten programme daran halten (sowohl lesenderweise als auch schreibenderweise), und deshalb gibt es ja auch die verschiedenen arten von locks (LOCK_EX, LOCK_SH, ...) siehe [perldoc=-f flock]-f flock[/perldoc]\n\n

<!--EDIT|Strat|1077044312-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< >> 4 Einträge, 1 Seite



View all threads created 2004-02-17 16:11.