# phpman > info > fcntl

[Fcntl(3perl)](https://www.chedong.com/phpMan.php/man/Fcntl/3perl/markdown)           Perl Programmers Reference Guide           [Fcntl(3perl)](https://www.chedong.com/phpMan.php/man/Fcntl/3perl/markdown)

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)](https://www.chedong.com/phpMan.php/man/fcntl/2/markdown), [open(2)](https://www.chedong.com/phpMan.php/man/open/2/markdown), [fseek(3)](https://www.chedong.com/phpMan.php/man/fseek/3/markdown), [lseek(2)](https://www.chedong.com/phpMan.php/man/lseek/2/markdown)
       (equal to Perl's seek() and sysseek(), respectively), and [chmod(2)](https://www.chedong.com/phpMan.php/man/chmod/2/markdown)
       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.

perl v5.34.0                      2025-07-25                      [Fcntl(3perl)](https://www.chedong.com/phpMan.php/man/Fcntl/3perl/markdown)
