FCNTL(5) SysV FCNTL(5)
NAME
fcntl - file control options
SYNOPSIS
#include <fcntl.h>
DESCRIPTION
The fcntl(2) function provides for control over open files. This include
file describes requests and arguments to fcntl and open(2).
/* Flag values accessible to open(2) and fcntl(2) */
/* (The first three can only be set by open) */
#define O_RDONLY 000
#define O_WRONLY 001
#define O_RDWR 002
#define O_NDELAY 004 /* Non-blocking I/O on object */
#define O_APPEND 010 /* append (writes guaranteed at the end) */
#define O_SYNC 020 /* synchronous write option */
/* Flag values accessible only to open(2) */
#define O_CREAT 00400 /* open with file create (uses third open arg)*/
#define O_TRUNC 01000 /* open with truncation */
#define O_EXCL 02000 /* exclusive open */
/* fcntl(2) requests */
#define F_DUPFD 0 /* Duplicate fildes */
#define F_GETFD 1 /* Get fildes flags */
#define F_SETFD 2 /* Set fildes flags */
#define F_GETFL 3 /* Get file flags */
#define F_SETFL 4 /* Set file flags */
#define F_GETLK 7 /* Get file lock */
#define F_SETLK 8 /* Set file lock */
#define F_SETLKW 9 /* Set file lock and wait */
#define F_CHKFL 10 /* Check legality of file flag changes */
/* file segment locking set data type - information passed to system by user */
struct flock {
short l_type;
short l_whence;
long l_start;
long l_len; /* len = 0 means until end of file */
short l_sysid;
short l_pid;
};
/* file segment locking types */
#define F_RDLCK 01 /* Read lock */
#define F_WRLCK 02 /* Write lock */
#define F_UNLCK 03 /* Remove lock(s) */
POSIX, XPG3, AES
If the application defines the compiler symbol _POSIX_SOURCE,
struct flock is declared as follows:
struct flock {
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;
pid_t l_pid; /* Process ID of the lock owner. */
}
SEE ALSO
fcntl(2), open(2).