#include <sys/fcntl.h>
Values for cmd used by fcntl (the following values are unique):
F_DUPFD | Duplicate file descriptor |
F_DUP2 | |
F_FREESP | |
F_FREESP64 | |
F_GETADV | |
F_SETADV | |
F_GETCPUGROUP | |
F_SETCPUGROUP | |
F_GETFD | Get file descriptor flags |
F_SETFD | Set file descriptor flags |
F_GETFL | Get file status flags |
F_SETFL | Set file status flags |
F_GETGRAN | |
F_SETGRAN | |
F_GETLK | Get record locking information |
F_GETLK64 | Get record locking information using an flock64 structure |
F_GETOWN | |
F_SETOWN | |
F_RGETLK | |
F_RGETLK64 | |
F_RSETLK | |
F_RSETLK64 | |
F_RSETLKW | |
F_RSETLKW64 | |
F_SETLK | Set record locking information |
F_SETLK64 | Set record locking information using an flock64 structure |
F_SETLKW | Set record locking information; wait if blocked |
F_SETLKW64 | Set record locking information using an flock64 structure; wait if blocked |
File descriptor flags used for fcntl:
FD_CLOEXEC | Close the file descriptor upon execution of an exec function (see exec(2)) |
Values for l_type used for record locking with fcntl (the following values are unique):
F_RDLCK | Shared or read lock |
F_UNLCK | Unlock |
F_WRLCK | Exclusive or write lock |
The following three sets of values are bitwise distinct: Values for oflag used by open:
O_CREAT | Create file if it does not exist |
O_EXCL | Exclusive use flag |
O_NOCTTY | Do not assign controlling tty |
O_TRUNC | Truncate flag |
File status flags used for open and fcntl:
O_APPEND | Set append mode |
O_LARGEFILE | Set large file mode |
O_NDELAY | Non-blocking mode |
O_NONBLOCK | Non-blocking mode (POSIX) |
O_SYNC | Synchronous writes |
Mask for use with file access modes:
O_ACCMODE | Mask for file access modes |
File access modes used for open and fcntl:
O_RDONLY | Open for reading only |
O_RDWR | Open for reading and writing |
O_WRONLY | Open for writing only |
The structure flock describes a file lock. It includes the following members:
short l_type; /* Type of lock */ 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 */ long l_sysid; /* Returned with F_GETLK */ pid_t l_pid; /* Returned with F_GETLK */ long l_pad /* reserve area */
The structure flock64 describes a file lock for large files. It includes the following members:
short l_type; /* Type of lock */ short l_whence; /* Flag for starting offset */ off64_t l_start; /* Relative offset in bytes */ off64_t l_len; /* Size; if 0 then until EOF */ long l_sysid; /* Returned with F_GETLK */ pid_t l_pid; /* Returned with F_GETLK */ long l_pad /* reserve area */
The only differences between the flock and flock64
structures are the l_start
and the l_end
members, which accomodate large files.
See
unistd(4)
for definition of values SEEK_CUR,
SEEK_END, and SEEK_SET
which are used for the l_whence
member of both the
flock and flock64 structures.