fcntl(5) fcntl(5)
fcntl - file control options
#include <fcntl.h>
The fcntl.h header defines the following requests and arguments for use
by the functions fcntl (see fcntl(2)) and open (see open(2)).
Values for cmd used by fcntl (the following values are unique):
F_DUPFD Duplicate file descriptor
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_GETLK Get record locking information
F_SETLK Set record locking information
F_SETLKW Set record locking information;
wait if blocked
F_ALLOCSP Allocate file space
F_ALLOCSP Allocate 64-bit file space
F_FREESP Free file space
F_FREESP Free 64-bit file space
F_SETBSDLK Set BSD record locking information
F_SETBSDLKW Set BSD record locking information;
wait if blocked
F_DIOINFO Get direct I/O parameters
F_RSETLK Remote SETLK for NFS
F_RGETLK Remote GETLK for NFS
F_RSETLKW Remote SETLKW for NFS
F_GETOWN Get owner (socket emulation)
F_SETOWN Set owner (socket emulation)
F_SETTRANSFER Set transfer context for data pipe
F_DESTROYTRANSFER Destroy transfer context for data pipe
F_ALLOCSP64 Allocate file space
F_FREESP64 Free file space
F_GETLK64 Get record locking information
F_SETLK64 Set record locking information
F_SETLKW64 Set record locking information;
wait if blocked
F_RESVSP Reserve file space
F_UNRESVSP Unreserve file space
F_RESVSP64 Reserve file space
F_UNRESVSP64 Unreserve file space
F_FSGETXATTRA Get extended attributes
F_FSYNC Flush a file range
F_FSYNC64 Flush a 64-bit file range
F_GETBIOSIZE Get the preferred buffer I/O sizes
F_SETBIOSIZE Set the preferred buffer I/O sizes
Page 1
fcntl(5) fcntl(5)
File descriptor flags used for fcntl:
FD_CLOEXEC Close the file descriptor upon
execution of an exec function [see exec(2)]
File status flags used for open and fcntl:
O_NDELAY Non-blocking I/O
O_APPEND Append
O_SYNC Synchronous write option
O_DSYNC Synchronous write option for data
O_RSYNC Synchronous data integrity read
FASYNC Interrupt-driven I/O for sockets
O_NONBLOCK Non-blocking I/O
O_LCFLUSH Flush cache on last close
O_LCINVAL Flush and invalidate cache on last close
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
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
O_DIRECT Direct I/O
O_LARGEFILE Allow large file opens
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 constants used for file modes are defined to have the same values as
in sys/stat.h. These constants exist in fcntl.h also in order to comply
with the XPG4 standards.
#define S_ISUID /* set user id on execution */
#define S_ISGID /* set group id on execution */
#define S_IRWXU /* read, write, execute: owner */
#define S_IRUSR /* read permission: owner */
#define S_IWUSR /* write permission: owner */
#define S_IXUSR /* execute permission: owner */
#define S_IRWXG /* read, write, execute: group */
#define S_IRGRP /* read permission: group */
#define S_IWGRP /* write permission: group */
#define S_IXGRP /* execute permission: group */
#define S_IRWXO /* read, write, execute: other */
Page 2
fcntl(5) fcntl(5)
#define S_IROTH /* read permission: other */
#define S_IWOTH /* write permission: other */
#define S_IXOTH /* execute permission: other */
The constants used for the lseek routine are defined to have the same
values as in unistd.h. These constants exist in fcntl.h also in order to
comply with the XPG4 standards.
#define SEEK_SET /* Set file pointer to "offset" */
#define SEEK_CUR /* Set file pointer to current plus"offset" */
#define SEEK_END /* Set file pointer to EOF plus"offset" */
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 */
The structure flock64 describes a file lock for use on 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 */
The structure biosize is used to pass information about the preferred I/O
sizes used for a file. It contains the following members:
__uint32_t biosz_flags; /* 1 if defaults are overridden */
__int32_t biosz_read; /* all values specified as log */
__int32_t biosz_write; /* base2 of the true length */
__int32_t dfl_biosz_read; /* Returned with F_GETBIOSIZE */
__int32_t dfl_biosz_write; /* Returned with F_GETBIOSIZE */
creat(2), exec(2), fcntl(2), open(2)
PPPPaaaaggggeeee 3333 [ Back ]
|