# phpman > man > fcntl(3p)

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