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.closeGet 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 139the value of the close-on-exec flag. INT2NUM(FD_CLOEXEC) 
- 
    F_DUPFD =
    # File 'ext/fcntl/fcntl.c', line 78Duplicate a file descriptor to the mimimum 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 85Read the close-on-exec flag of a file descriptor. INT2NUM(F_GETFD) 
- 
    F_GETFL =
    # File 'ext/fcntl/fcntl.c', line 108Get 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 93Determine whether a given region of a file is locked. This uses one of the F_*LK flags. INT2NUM(F_GETLK) 
- 
    F_RDLCK =
    # File 'ext/fcntl/fcntl.c', line 146Read lock for a region of a file INT2NUM(F_RDLCK) 
- 
    F_SETFD =
    # File 'ext/fcntl/fcntl.c', line 100Set the close-on-exec flag of a file descriptor. INT2NUM(F_SETFD) 
- 
    F_SETFL =
    # File 'ext/fcntl/fcntl.c', line 116Set 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 124Acquire 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 132Acquire a lock on a region of a file, waiting if necessary. This uses one of the F_*LCK flags INT2NUM(F_SETLKW) 
- 
    F_UNLCK =
    # File 'ext/fcntl/fcntl.c', line 153Remove lock for a region of a file INT2NUM(F_UNLCK) 
- 
    F_WRLCK =
    # File 'ext/fcntl/fcntl.c', line 160Write lock for a region of a file INT2NUM(F_WRLCK) 
- 
    O_ACCMODE =
    # File 'ext/fcntl/fcntl.c', line 237Mask to extract the read/write flags INT2FIX(O_ACCMODE) 
- 
    O_APPEND =
    # File 'ext/fcntl/fcntl.c', line 195Open the file in append mode INT2NUM(O_APPEND) 
- 
    O_CREAT =
    # File 'ext/fcntl/fcntl.c', line 167Create the file if it doesn't exist INT2NUM(O_CREAT) 
- 
    O_EXCL =
    # File 'ext/fcntl/fcntl.c', line 174Used with O_CREAT, fail if the file exists INT2NUM(O_EXCL) 
- 
    O_NDELAY =
    # File 'ext/fcntl/fcntl.c', line 209Open the file in non-blocking mode INT2NUM(O_NDELAY) 
- 
    O_NOCTTY =
    # File 'ext/fcntl/fcntl.c', line 181Open TTY without it becoming the controlling TTY INT2NUM(O_NOCTTY) 
- 
    O_NONBLOCK =
    # File 'ext/fcntl/fcntl.c', line 202Open the file in non-blocking mode INT2NUM(O_NONBLOCK) 
- 
    O_RDONLY =
    # File 'ext/fcntl/fcntl.c', line 216Open the file in read-only mode INT2NUM(O_RDONLY) 
- 
    O_RDWR =
    # File 'ext/fcntl/fcntl.c', line 223Open the file in read-write mode INT2NUM(O_RDWR) 
- 
    O_TRUNC =
    # File 'ext/fcntl/fcntl.c', line 188Truncate the file on open INT2NUM(O_TRUNC) 
- 
    O_WRONLY =
    # File 'ext/fcntl/fcntl.c', line 230Open the file in write-only mode. INT2NUM(O_WRONLY)