13
13
14
14
----------------
15
15
16
- This module performs file control and I/O control on file descriptors. It is an
17
- interface to the :c:func: `fcntl ` and :c:func: `ioctl ` Unix routines. For a
18
- complete description of these calls, see :manpage: `fcntl(2)` and
19
- :manpage: `ioctl(2)` Unix manual pages .
16
+ This module performs file and I/O control on file descriptors. It is an
17
+ interface to the :c:func: `fcntl ` and :c:func: `ioctl ` Unix routines.
18
+ See the :manpage: `fcntl(2)` and :manpage: `ioctl(2)` Unix manual pages
19
+ for full details .
20
20
21
21
.. availability :: Unix, not Emscripten, not WASI.
22
22
@@ -80,7 +80,7 @@ The module defines the following functions:
80
80
most likely to result in a segmentation violation or a more subtle data
81
81
corruption.
82
82
83
- If the :c:func: `fcntl ` fails, an :exc: `OSError ` is raised.
83
+ If the :c:func: `fcntl ` call fails, an :exc: `OSError ` is raised.
84
84
85
85
.. audit-event :: fcntl.fcntl fd,cmd,arg fcntl.fcntl
86
86
@@ -118,7 +118,7 @@ The module defines the following functions:
118
118
buffer 1024 bytes long which is then passed to :func: `ioctl ` and copied back
119
119
into the supplied buffer.
120
120
121
- If the :c:func: `ioctl ` fails, an :exc: `OSError ` exception is raised.
121
+ If the :c:func: `ioctl ` call fails, an :exc: `OSError ` exception is raised.
122
122
123
123
An example::
124
124
@@ -143,7 +143,7 @@ The module defines the following functions:
143
143
:manpage: `flock(2)` for details. (On some systems, this function is emulated
144
144
using :c:func: `fcntl `.)
145
145
146
- If the :c:func: `flock ` fails, an :exc: `OSError ` exception is raised.
146
+ If the :c:func: `flock ` call fails, an :exc: `OSError ` exception is raised.
147
147
148
148
.. audit-event :: fcntl.flock fd,operation fcntl.flock
149
149
@@ -155,17 +155,28 @@ The module defines the following functions:
155
155
method are accepted as well) of the file to lock or unlock, and *cmd *
156
156
is one of the following values:
157
157
158
- * :const: `LOCK_UN ` -- unlock
159
- * :const: `LOCK_SH ` -- acquire a shared lock
160
- * :const: `LOCK_EX ` -- acquire an exclusive lock
158
+ .. data :: LOCK_UN
161
159
162
- When *cmd * is :const: `LOCK_SH ` or :const: `LOCK_EX `, it can also be
163
- bitwise ORed with :const: `LOCK_NB ` to avoid blocking on lock acquisition.
164
- If :const: `LOCK_NB ` is used and the lock cannot be acquired, an
160
+ Release an existing lock.
161
+
162
+ .. data :: LOCK_SH
163
+
164
+ Acquire a shared lock.
165
+
166
+ .. data :: LOCK_EX
167
+
168
+ Acquire an exclusive lock.
169
+
170
+ .. data :: LOCK_NB
171
+
172
+ Bitwise OR with any of the other three ``LOCK_* `` constants to make
173
+ the request non-blocking.
174
+
175
+ If :const: `!LOCK_NB ` is used and the lock cannot be acquired, an
165
176
:exc: `OSError ` will be raised and the exception will have an *errno *
166
- attribute set to :const: `EACCES ` or :const: `EAGAIN ` (depending on the
177
+ attribute set to :const: `~errno. EACCES ` or :const: `~errno. EAGAIN ` (depending on the
167
178
operating system; for portability, check for both values). On at least some
168
- systems, :const: `LOCK_EX ` can only be used if the file descriptor refers to a
179
+ systems, :const: `! LOCK_EX ` can only be used if the file descriptor refers to a
169
180
file opened for writing.
170
181
171
182
*len * is the number of bytes to lock, *start * is the byte offset at
0 commit comments