The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
Copyright © 2001-2004 The IEEE and The Open Group, All Rights reserved.

#### NAME

> fcntl.h - file control options

#### SYNOPSIS

> `#include <fcntl.h>`

#### DESCRIPTION

> The <fcntl.h> header shall define the following requests and arguments for use by the functions fcntl() and open().

> Values for cmd used by fcntl() (the following values are unique) are as follows:

> F_DUPFD
>   Duplicate file descriptor.
> F_GETFD
>   Get file descriptor flags.
> F_SETFD
>   Set file descriptor flags.
> F_GETFL
>   Get file status flags and file access modes.
> F_SETFL
>   Set file status flags.
> F_GETLK
>   Get record locking information.
> F_SETLK
>   Set record locking information.
> F_SETLKW
>   Set record locking information; wait if blocked.
> F_GETOWN
>   Get process or process group ID to receive SIGURG signals.
> F_SETOWN
>   Set process or process group ID to receive SIGURG signals.

> File descriptor flags used for fcntl() are as follows:

> FD_CLOEXEC
>   Close the file descriptor upon execution of an exec family function.

> Values for l_type used for record locking with fcntl() (the following values are unique) are as follows:

> F_RDLCK
>   Shared or read lock.
> F_UNLCK
>   Unlock.
> F_WRLCK
>   Exclusive or write lock.

> [XSI] The values used for l_whence, SEEK_SET, SEEK_CUR, and SEEK_END shall be defined as described in <unistd.h>.

> The following values are file creation flags and are used in the oflag value to open(). They shall be bitwise-distinct.

> O_CREAT
>   Create file if it does not exist.
> O_EXCL
>   Exclusive use flag.
> O_NOCTTY
>   Do not assign controlling terminal.
> O_TRUNC
>   Truncate flag.

> File status flags used for open() and fcntl() are as follows:

> O_APPEND
>   Set append mode.
> O_DSYNC
>   [SIO] Write according to synchronized I/O data integrity completion.
> O_NONBLOCK
>   Non-blocking mode.
> O_RSYNC
>   [SIO] Synchronized read I/O operations.
> O_SYNC
>   Write according to synchronized I/O file integrity completion.

> Mask for use with file access modes is as follows:

> O_ACCMODE
>   Mask for file access modes.

> File access modes used for open() and fcntl() are as follows:

> O_RDONLY
>   Open for reading only.
> O_RDWR
>   Open for reading and writing.
> O_WRONLY
>   Open for writing only.

> [XSI] The symbolic names for file modes for use as values of mode_t shall be defined as described in <sys/stat.h>.

> [ADV] Values for advice used by posix_fadvise() are as follows:

> POSIX_FADV_NORMAL
>   The application has no advice to give on its behavior with respect to the specified data. It is the default characteristic if no advice is given for an open file.
> POSIX_FADV_SEQUENTIAL
>   The application expects to access the specified data sequentially from lower offsets to higher offsets.
> POSIX_FADV_RANDOM
>   The application expects to access the specified data in a random order.
> POSIX_FADV_WILLNEED
>   The application expects to access the specified data in the near future.
> POSIX_FADV_DONTNEED
>   The application expects that it will not access the specified data in the near future.
> POSIX_FADV_NOREUSE
>   The application expects to access the specified data once and then not reuse it thereafter.

> The structure flock describes a file lock. It shall include the following members:

>     short  l_type   Type of lock; F_RDLCK, F_WRLCK, F_UNLCK.
>     short  l_whence Flag for starting offset.
>     off_t  l_start  Relative offset in bytes.
>     off_t  l_len    Size; if 0 then until EOF.
>     pid_t  l_pid    Process ID of the process holding the lock; returned with F_GETLK.

> The mode_t, off_t, and pid_t types shall be defined as described in <sys/types.h>.

> The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

>     int  creat(const char *, mode_t);
>     int  fcntl(int, int, ...);
>     int  open(const char *, int, ...);
>     [ADV]
>     int  posix_fadvise(int, off_t, off_t, int);
>     int  posix_fallocate(int, off_t, off_t);

> [XSI] Inclusion of the <fcntl.h> header may also make visible all symbols from <sys/stat.h> and <unistd.h>.

The following sections are informative.

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> <sys/stat.h>, <sys/types.h>, <unistd.h>, the System Interfaces volume of IEEE Std 1003.1-2001, creat(), exec, fcntl(), open(), posix_fadvise(), posix_fallocate(), posix_madvise()

#### CHANGE HISTORY

> First released in Issue 1. Derived from Issue 1 of the SVID.

#### Issue 5

> The DESCRIPTION is updated for alignment with the POSIX Realtime Extension.

#### Issue 6

> The following changes are made for alignment with the ISO POSIX-1:1996 standard:

> - O_DSYNC and O_RSYNC are marked as part of the Synchronized Input and Output option.

> The following new requirements on POSIX implementations derive from alignment with the Single UNIX Specification:

> - The definition of the mode_t, off_t, and pid_t types is mandated.

> The F_GETOWN and F_SETOWN values are added for sockets.

> The posix_fadvise(), posix_fallocate(), and posix_madvise() functions are added for alignment with IEEE Std 1003.1d-1999.

> IEEE PASC Interpretation 1003.1 #102 is applied, moving the prototype for posix_madvise() to <sys/mman.h>.

> IEEE Std 1003.1-2001/Cor 2-2004, item XBD/TC2/D6/18 is applied, updating the protoypes for posix_fadvise() and posix_fallocate() to be large file-aware, using off_t instead of size_t.

End of informative text.

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
[ Main Index | XBD | XCU | XSH | XRAT ]