Hi,
mein webserver unterstützt leider kein flock (oder eben der provider).
Wie kann ich aber trotzdem die entsprechenden dateien schützen? Vielen Dank für eure Antworten.
Eine Möglichkeit:
$data_dir = $ENV{"DOCUMENT_ROOT"}."....";
$lockdir = "$data_dir/filelock";
&FileLock("$lockdir");
open(...);
....
close(...);
&FileUnlock("$lockdir");
File Locking:
###############################################################
Usage : &FileLock("$lockdir");
# : &FileUnlock("$lockdir"); #
# #
###############################################################
sub FileLock {
my($i); # sleep counter
while (!mkdir($_[0],0777)) { # if there already is a lock
sleep 1; # sleep for 1 sec and try again
if (++$i>60) { die("File_Lock : Can't create filelock : $!\n"); }
}
}
sub FileUnlock {
rmdir($_[0]); # remove file lock dir
}
####################################################################
danke.
so was habe ich mir eigentlich schon gedacht. nur 1 sekunde ist schon ein wenig lang. wenn jetzt aber wirklich genau gleichzeitig zwei besucher auf die Seite zugreifen gibt's doch wahrscheinlich auch probleme.
Kann man nicht irgendwie eine zahl in den arbeitsspeicher des rechners setzen, auf dem der script ausgeführt wird? Oder wie funktioniert eigentlich das flock? ich weiß, für was man das verwendet; aber ich weiß nicht, warum dies z.b. nur unter linux läuft?