Current Perl documentation can be found at
perldoc.perl.org.
Here is our local, out-dated (pre-5.6) version:
Perl's builtin
flock() function (see the perlfunc manpage for details) will call
flock(2) if that exists,
fcntl(2) if it doesn't (on perl version 5.004 and later), and
lockf(3) if neither of the two previous system calls exists. On some systems, it may even use a different form of native locking. Here are some gotchas with Perl's
flock():
-
Produces a fatal error if none of the three system calls (or their close
equivalent) exists.
-
lockf(3) does not provide
shared locking, and requires that the filehandle be open for writing (or
appending, or read/writing).
-
Some versions of
flock() can't lock files over a network (e.g. on
NFS file systems), so you'd need to force the use of
fcntl(2) when you build Perl. See the flock entry of
the perlfunc manpage, and the INSTALL
file in the source distribution for information on building Perl to do
this.
|