Fcntl(3pm) Perl Programmers Reference Guide Fcntl(3pm)
Fcntl - load the C Fcntl.h defines
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 dis-
tribution) 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 pro-
vided by using the tag ":flock". See Exporter.
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 ":Fcom-
pat". 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).
For ease of use also the SEEK_* constants (for seek() and sysseek(), e.g. SEEK_END) and
the S_I* constants (for chmod() and stat()) are available for import. They can be
imported either separately or using the tags ":seek" and ":mode".
Please refer to your native fcntl(2), open(2), fseek(3), lseek(2) (equal to Perl's seek()
and sysseek(), respectively), and chmod(2) documentation to see what constants are imple-
mented in your system.
See perlopentut to learn about the uses of the O_* constants with sysopen().
See "seek" in perlfunc and "sysseek" in perlfunc about the SEEK_* constants.
See "stat" in perlfunc about the S_I* constants.
perl v5.8.0 2002-06-01 Fcntl(3pm)