fcntl.h - file control options
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:
- Duplicate file descriptor.
- Get file descriptor flags.
- Set file descriptor flags.
- Get file status flags and file access modes.
- Set file status flags.
- Get record locking information.
- Set record locking information.
- Set record locking information; wait if blocked.
- Get process or process group ID to receive SIGURG signals.
- Set process or process group ID to receive SIGURG signals.
File descriptor flags used for fcntl() are as follows:
- 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:
- Shared or read lock.
- 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.
- Create file if it does not exist.
- Exclusive use flag.
- Do not assign controlling terminal.
- Truncate flag.
File status flags used for open() and fcntl() are as follows:
- Set append mode.
- [SIO] Write according to synchronized I/O data integrity completion.
- Non-blocking mode.
- [SIO] Synchronized read I/O operations.
- Write according to synchronized I/O file integrity completion.
Mask for use with file access modes is as follows:
- Mask for file access modes.
File access modes used for open() and fcntl() are as follows:
- Open for reading only.
- Open for reading and writing.
- 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:
- 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.
- The application expects to access the specified data sequentially from lower offsets to higher offsets.
- The application expects to access the specified data in a random order.
- The application expects to access the specified data in the near future.
- The application expects that it will not access the specified data in the near future.
- 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>.
<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()
First released in Issue 1. Derived from Issue 1 of the SVID.
The DESCRIPTION is updated for alignment with the POSIX Realtime Extension.
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.