The CGI-Forum

Here you can read all entries on the board and/or make own entries. Have fun!
Dateiprobleme mit FLOCK - xwolf (xwolf@xwolf.com), 2.10.97 - 21:35:44
Hallo!

Folgende Antwort wurde hierzu bereits auf einer Mailingliste gegeben:

 
schreib das Skript mal so um:
# get number for new guestbook
if( open(NUMBER, '+>$book_config/$datafile')) # Lesen und Schreiben
{
flock( NUMBER, 2); # exklusiver lock
$count = ; # $count wird mit erster Zeile besetzt
$count = $count + 1; # Konvertierung und Inkrementierung
seek( NUMBER, 0, 0); # gehe zu Filebeginn
print NUMBER $count, '\n'; # Schreibe inkrementierte Zahl ins FILE
flock( NUMBER, 8); # loese Lock auf
close( NUMBER ); # Schliesse unmittelbar nach unlocken
}
else
{
#Fehlerbehandlung...
}
So sollte/muesste es klappen, da nun das locken konsistent ablaeuft.
Wenn es irgend geht sollte man ein File, aus dem man erst
lesen und in das man dann schreiben will, wie oben oeffnen,
und nicht a la Matt Wright... ;-)
Ach ja: auch wenn ein FILE in Perl gelockt ist, kann es immer noch
ueberschrieben/gelesen werden. Das liegt an Perls 'Advisory
File-Locking'-System. Ein exklusiver lock sperrt naemlich anderen
Skriptaufrufen nicht den Zugriff, er fuehrt nur dazu, dass andere
Skriptaufrufe bei einem lock-Versuch warten, bis der (erste) lock wieder
aufgehoben ist... kompliziert ;-)
Ich hoffe, es laeuft jetzt!
Ciao, Konstantin

Ciao,
Wolfgang


New MessageReply tn thisReply on topicDeleteOverviewPreviousNext Mail this Mail topic Mail all
New messageReply to this messageEntry to this topicDelete entryAll entries Previous Entry Next EntryMail this message Mail this topic Mail all messages

Script written by
Wolfgang Wiese, feedback welcome.