NAME¶
Fcntl - load the C Fcntl.h defines
SYNOPSIS¶
use Fcntl;
use Fcntl qw(:DEFAULT :flock);
DESCRIPTION¶
This module is just a translation of the C
fcntl.h file. Unlike the old
mechanism of requiring a translated
fcntl.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.
NOTE¶
Only "#define" symbols get translated; you must still correctly pack
up your own arguments to pass as args for locking functions, etc.
EXPORTED SYMBOLS¶
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 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 ":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).
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
implemented 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.