
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
-
-
Script written by Wolfgang Wiese, feedback welcome.