Fcntl#
Symbolic constants for fcntl(2), flock(2), seek(2), and file-mode bits - everything you need to call sysopen, fcntl, flock, seek, and to interpret the mode word returned by stat.
Import individual names, or a named group via one of the export tags: :DEFAULT (open and file-descriptor flags), :flock (advisory locks), :seek (whence positions), :mode (mode bits and S_IS* predicates), :Fcompat (BSD-style flock aliases).
Open flags (sysopen)#
O_RDONLY,O_WRONLY,O_RDWR- access mode.O_CREAT- create the file if it does not exist.O_EXCL- withO_CREAT, fail if the file already exists.O_TRUNC- truncate to zero length on open.O_APPEND- every write seeks to end of file first.O_NONBLOCK- open without blocking; I/O returnsEAGAINinstead.O_NOCTTY,O_NOFOLLOW,O_BINARY- additional platform flags (O_BINARYis a no-op on Linux).
File-descriptor control (fcntl)#
F_DUPFD- duplicate a descriptor.F_GETFD,F_SETFD- read / set the close-on-exec flagFD_CLOEXEC.F_GETFL,F_SETFL- read / set the open-file status flags.
Lock types (flock)#
LOCK_SH- shared lock.LOCK_EX- exclusive lock.LOCK_UN- release lock.LOCK_NB- OR with the above to request a non-blocking attempt.
Seek whence#
SEEK_SET- from start of file.SEEK_CUR- from current position.SEEK_END- from end of file.
File mode bits (stat)#
Type mask and values:
S_IFMT,S_IFREG,S_IFDIR,S_IFCHR,S_IFBLK,S_IFIFO,S_IFLNK,S_IFSOCK.Permission triplets:
S_IRWXU,S_IRWXG,S_IRWXOand the per-bitS_IRUSR/S_IWUSR/S_IXUSR(and theGRP,OTHvariants).Setuid / setgid / sticky bits:
S_ISUID,S_ISGID,S_ISVTX.
Mode test helpers#
Function-form predicates over a stat-mode value: S_ISREG, S_ISDIR, S_ISCHR, S_ISBLK, S_ISFIFO, S_ISLNK, S_ISSOCK, plus S_IFMT (extract file-type bits) and S_IMODE (extract permission bits).
ביצועים#
Every constant in this module is resolved at compile time - using O_CREAT in an expression costs exactly what writing the integer literal would cost. No per-call lookup.
Functions#
Mode test helpers#
s_ifmt#
Extract the file-type bits from a stat-mode value.
s_imode#
Extract the permission bits from a stat-mode value.
s_isreg#
True if a stat-mode value names a regular file.
s_isdir#
True if a stat-mode value names a directory.
s_ischr#
True if a stat-mode value names a character-special device.
s_isblk#
True if a stat-mode value names a block-special device.
s_isfifo#
True if a stat-mode value names a named pipe (FIFO).
s_islnk#
True if a stat-mode value names a symbolic link.
s_issock#
True if a stat-mode value names a socket.