:mod:`fcntl` --- The fcntl
and ioctl
system calls
This module performs file control and I/O control on file descriptors. It is an interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines.
All functions in this module take a file descriptor fd as their first
argument. This can be an integer file descriptor, such as returned by
sys.stdin.fileno()
, or a :class:`io.IOBase` object, such as sys.stdin
itself, which provides a :meth:`~io.IOBase.fileno` that returns a genuine file
descriptor.
The module defines the following functions:
Examples (all on a SVR4 compliant system):
import struct, fcntl, os
f = open(...)
rv = fcntl.fcntl(f, fcntl.F_SETFL, os.O_NDELAY)
lockdata = struct.pack('hhllhh', fcntl.F_WRLCK, 0, 0, 0, 0, 0)
rv = fcntl.fcntl(f, fcntl.F_SETLKW, lockdata)
Note that in the first example the return value variable rv will hold an integer value; in the second example it will hold a :class:`bytes` object. The structure lay-out for the lockdata variable is system dependent --- therefore using the :func:`flock` call may be better.