Hallo!
- das Handle des Ein-/Ausgabekanals der geöffneten Datei.
- die Nummer einer Lock-Operation - erlaubt sind die Nummern 1, 2, 4 und 8:
Nummer 1 bedeutet shared (Datei ausdruecklich mit anderen Prozessen teilen),
Nummer 2 bedeutet exclusive (Normalfall - keinem anderen Prozess irgendeinen Zugriff auf die Datei erlauben),
Nummer 4 bedeutet non-blocking (Datei nicht voellig blockieren - zum Beispiel lesenden Zugriff anderer Prozesse zulassen),
Nummer 8 bedeutet unlock (Zugriffsschutz ausdruecklich wieder aufheben).
Das ist falsch! RFTM "perldoc -f flock". Zitat:
OPERATION is one of LOCK_SH, LOCK_EX, or LOCK_UN, possibly combined with
LOCK_NB. These constants are traditionally valued 1, 2, 8 and 4, but
you can use the symbolic names if import them from the Fcntl module,
either individually, or as a group using the ':flock' tag. LOCK_SH
requests a shared lock, LOCK_EX requests an exclusive lock, and LOCK_UN
releases a previously requested lock. If LOCK_NB is added to LOCK_SH or
LOCK_EX then flock() will return immediately rather than blocking
waiting for the lock (check the return status to see if you got it).
flock(LOGFILE, 8);
close(LOGFILE);
close impliziert ein unlock. Es ist aus gewissen Gruenden mehr als ratsam, dass flock(LOGFILE, 8) wegzulassen.
Viele Grüße,
Daniel Bradler