Fcntl - load the C Fcntl.h defines
use Fcntl; use Fcntl qw(:DEFAULT :flock);
This module is just a translation of the C fnctl.h file. Unlike the old mechanism of requiring a translated fnctl.ph file, this uses the h2xs program (see the Perl source distribution) and your native C compiler. This means that it has a far more likely chance of getting the numbers right.
Only #define
symbols get translated; you must still correctly pack up your own arguments
to pass as args for locking functions, etc.
By default your system's F_* and O_* constants (eg, F_DUPFD and O_CREAT) and the FD_CLOEXEC constant are exported into your namespace.
You can request that the flock()
constants
(LOCK_SH,
LOCK_EX,
LOCK_NB and
LOCK_UN) be provided by using the tag
:flock. See the Exporter manpage.
You can request that the old constants
(FAPPEND,
FASYNC,
FCREAT,
FDEFER,
FEXCL,
FNDELAY,
FNONBLOCK,
FSYNC,
FTRUNC) be provided for compatibility reasons by using the tag
:Fcompat
. For new applications the newer versions of these constants are suggested
(O_APPEND,
O_ASYNC,
O_CREAT,
O_DEFER,
O_EXCL,
O_NDELAY,
O_NONBLOCK,
O_SYNC,
O_TRUNC).
Please refer to your native fcntl()
and open()
documentation to see what constants are implemented in your system.