flockFILEHANDLE
,OPERATION
This function calls
flock
(2) on
FILEHANDLE
. See the manual page for
flock
(2) for the definition of
OPERATION
. Invoking
flock
will produce a fatal error if used on a machine that doesn't implement
flock
(2) or emulate it through some other locking mechanism. Here's a mailbox appender for some BSD-based systems:
$LOCK_SH = 1; $LOCK_EX = 2; $LOCK_NB = 4; $LOCK_UN = 8; sub lock { flock MBOX, $LOCK_EX; # and, in case someone appended # while we were waiting... seek MBOX, 0, 2; } sub unlock { flock MBOX, $LOCK_UN; } open MBOX, ">>/usr/spool/mail/$ENV{'USER'}" or die "Can't open mailbox: $!"; lock(); print MBOX $msg, "\n\n"; unlock();
Note that flock is unlikely to work on a file being accessed through a network file system.