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.
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
Write according to synchronized I/O data integrity completion.
O_NONBLOCK
Non-blocking mode.
O_RSYNC
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.
The symbolic names for file modes for use as values of mode_t shall be
defined as described in <sys/stat.h> .
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, ...);
int posix_fadvise(int, off_t, size_t, int);
int posix_fallocate(int, off_t, size_t);
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()
COPYRIGHT
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
-- Portable Operating System Interface (POSIX), The Open Group Base
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open Group Standard
is the referee document. The original Standard can be obtained online
at http://www.opengroup.org/unix/online.html .