Module: Fcntl
| Relationships & Source Files | |
| Defined in: | ext/fcntl/fcntl.c |
Overview
Fcntl loads the constants defined in the system’s <fcntl.h> C header file, and used with both the fcntl(2) and open(2) POSIX system calls.
To perform a fcntl(2) operation, use IO.fcntl.
To perform an open(2) operation, use IO.sysopen.
The set of operations and constants available depends upon specific operating system. Some values listed below may not be supported on your system.
See your fcntl(2) man page for complete details.
Open /tmp/tempfile as a write-only file that is created if it doesn’t exist:
require 'fcntl'
fd = IO.sysopen('/tmp/tempfile',
Fcntl::O_WRONLY | Fcntl::O_EXCL | Fcntl::O_CREAT)
f = IO.open(fd)
f.syswrite("TEMP DATA")
f.close
Get the flags on file s:
m = s.fcntl(Fcntl::F_GETFL, 0)
Set the non-blocking flag on f in addition to the existing flags in m.
f.fcntl(Fcntl::F_SETFL, Fcntl::O_NONBLOCK|m)
Constant Summary
-
FD_CLOEXEC =
# File 'ext/fcntl/fcntl.c', line 140
the value of the close-on-exec flag.
INT2NUM(FD_CLOEXEC)
-
F_ALLOCATEALL =
# File 'ext/fcntl/fcntl.c', line 275
macOS specific flag used with F_PREALLOCATE for allocating all contiguous space or no space.
INT2NUM(F_ALLOCATEALL)
-
F_ALLOCATECONTIG =
# File 'ext/fcntl/fcntl.c', line 267
macOS specific flag used with F_PREALLOCATE for allocating contiguous space.
INT2NUM(F_ALLOCATECONTIG)
-
F_ALLOCATEPERSIST =
# File 'ext/fcntl/fcntl.c', line 283
macOS specific flag used with F_PREALLOCATE. Allocate space that is not freed when close is called.
INT2NUM(F_ALLOCATEPERSIST)
-
F_DUP2FD =
# File 'ext/fcntl/fcntl.c', line 244
It is a FreeBSD specific constant and equivalent to dup2 call.
INT2NUM(F_DUP2FD)
-
F_DUP2FD_CLOEXEC =
# File 'ext/fcntl/fcntl.c', line 252
It is a FreeBSD specific constant and acts similarly as F_DUP2FD but set the FD_CLOEXEC flag in addition.
INT2NUM(F_DUP2FD_CLOEXEC)
-
F_DUPFD =
# File 'ext/fcntl/fcntl.c', line 87
Duplicate a file descriptor to the minimum unused file descriptor greater than or equal to the argument.
The close-on-exec flag of the duplicated file descriptor is set. (Ruby uses F_DUPFD_CLOEXEC internally if available to avoid race condition. F_SETFD is used if F_DUPFD_CLOEXEC is not available.)
INT2NUM(F_DUPFD)
-
F_GETFD =
# File 'ext/fcntl/fcntl.c', line 93
Read the close-on-exec flag of a file descriptor.
INT2NUM(F_GETFD)
-
F_GETFL =
# File 'ext/fcntl/fcntl.c', line 113
Get the file descriptor flags. This will be one or more of the O_* flags.
INT2NUM(F_GETFL)
-
F_GETLK =
# File 'ext/fcntl/fcntl.c', line 100
Determine whether a given region of a file is locked. This uses one of the F_*LK flags.
INT2NUM(F_GETLK)
-
F_GETPIPE_SZ =
# File 'ext/fcntl/fcntl.c', line 170
Return (as the function result) the capacity of the pipe referred to by fd.
INT2NUM(F_GETPIPE_SZ)
-
F_PEOFPOSMODE =
# File 'ext/fcntl/fcntl.c', line 291
macOS specific flag used with F_PREALLOCATE. Allocate from the physical end of file
INT2NUM(F_PEOFPOSMODE)
-
F_PREALLOCATE =
# File 'ext/fcntl/fcntl.c', line 259
macOS specific flag used for preallocating file space.
INT2NUM(F_PREALLOCATE)
-
F_RDLCK =
# File 'ext/fcntl/fcntl.c', line 146
Read lock for a region of a file
INT2NUM(F_RDLCK)
-
F_SETFD =
# File 'ext/fcntl/fcntl.c', line 106
Set the close-on-exec flag of a file descriptor.
INT2NUM(F_SETFD)
-
F_SETFL =
# File 'ext/fcntl/fcntl.c', line 120
Set the file descriptor flags. This will be one or more of the O_* flags.
INT2NUM(F_SETFL)
-
F_SETLK =
# File 'ext/fcntl/fcntl.c', line 127
Acquire a lock on a region of a file. This uses one of the F_*LCK flags.
INT2NUM(F_SETLK)
-
F_SETLKW =
# File 'ext/fcntl/fcntl.c', line 134
Acquire a lock on a region of a file, waiting if necessary. This uses one of the F_*LCK flags
INT2NUM(F_SETLKW)
-
F_SETPIPE_SZ =
# File 'ext/fcntl/fcntl.c', line 164
Change the capacity of the pipe referred to by fd to be at least arg bytes.
INT2NUM(F_SETPIPE_SZ)
-
F_UNLCK =
# File 'ext/fcntl/fcntl.c', line 152
Remove lock for a region of a file
INT2NUM(F_UNLCK)
-
F_VOLPOSMODE =
# File 'ext/fcntl/fcntl.c', line 298
macOS specific flag used with F_PREALLOCATE. Allocate from the volume offset.
INT2NUM(F_VOLPOSMODE)
-
F_WRLCK =
# File 'ext/fcntl/fcntl.c', line 158
Write lock for a region of a file
INT2NUM(F_WRLCK)
-
O_ACCMODE =
# File 'ext/fcntl/fcntl.c', line 238
Mask to extract the read/write flags
INT2FIX(O_ACCMODE)
-
O_APPEND =
# File 'ext/fcntl/fcntl.c', line 200
Open the file in append mode
INT2NUM(O_APPEND)
-
O_CREAT =
# File 'ext/fcntl/fcntl.c', line 176
Create the file if it doesn’t exist
INT2NUM(O_CREAT)
-
O_EXCL =
# File 'ext/fcntl/fcntl.c', line 182
Used with O_CREAT, fail if the file exists
INT2NUM(O_EXCL)
-
O_NDELAY =
# File 'ext/fcntl/fcntl.c', line 212
Open the file in non-blocking mode
INT2NUM(O_NDELAY)
-
O_NOCTTY =
# File 'ext/fcntl/fcntl.c', line 188
Open TTY without it becoming the controlling TTY
INT2NUM(O_NOCTTY)
-
O_NONBLOCK =
# File 'ext/fcntl/fcntl.c', line 206
Open the file in non-blocking mode
INT2NUM(O_NONBLOCK)
-
O_RDONLY =
# File 'ext/fcntl/fcntl.c', line 218
Open the file in read-only mode
INT2NUM(O_RDONLY)
-
O_RDWR =
# File 'ext/fcntl/fcntl.c', line 224
Open the file in read-write mode
INT2NUM(O_RDWR)
-
O_TRUNC =
# File 'ext/fcntl/fcntl.c', line 194
Truncate the file on open
INT2NUM(O_TRUNC)
-
O_WRONLY =
# File 'ext/fcntl/fcntl.c', line 230
Open the file in write-only mode.
INT2NUM(O_WRONLY)
-
VERSION =
# File 'ext/fcntl/fcntl.c', line 76
The version string.
rb_str_new_cstr(FCNTL_VERSION)