You are viewing the version of this documentation from Perl 5.005_02. View the latest version
Fcntl may also refer to the function: fcntl



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 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 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).

Please refer to your native fcntl() and open() documentation to see what constants are implemented in your system.