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
@@ -101,7 +101,7 @@ The module defines the following functions:
101
101
most likely to result in a segmentation violation or a more subtle data
102
102
corruption.
103
103
104
- If the :c:func: `fcntl ` fails, an :exc: `OSError ` is raised.
104
+ If the :c:func: `fcntl ` call fails, an :exc: `OSError ` is raised.
105
105
106
106
.. audit-event :: fcntl.fcntl fd,cmd,arg fcntl.fcntl
107
107
@@ -139,7 +139,7 @@ The module defines the following functions:
139
139
buffer 1024 bytes long which is then passed to :func: `ioctl ` and copied back
140
140
into the supplied buffer.
141
141
142
- If the :c:func: `ioctl ` fails, an :exc: `OSError ` exception is raised.
142
+ If the :c:func: `ioctl ` call fails, an :exc: `OSError ` exception is raised.
143
143
144
144
An example::
145
145
@@ -164,7 +164,7 @@ The module defines the following functions:
164
164
:manpage: `flock(2)` for details. (On some systems, this function is emulated
165
165
using :c:func: `fcntl `.)
166
166
167
- If the :c:func: `flock ` fails, an :exc: `OSError ` exception is raised.
167
+ If the :c:func: `flock ` call fails, an :exc: `OSError ` exception is raised.
168
168
169
169
.. audit-event :: fcntl.flock fd,operation fcntl.flock
170
170
@@ -176,17 +176,28 @@ The module defines the following functions:
176
176
method are accepted as well) of the file to lock or unlock, and *cmd *
177
177
is one of the following values:
178
178
179
- * :const: `LOCK_UN ` -- unlock
180
- * :const: `LOCK_SH ` -- acquire a shared lock
181
- * :const: `LOCK_EX ` -- acquire an exclusive lock
179
+ .. data :: LOCK_UN
182
180
183
- When *cmd * is :const: `LOCK_SH ` or :const: `LOCK_EX `, it can also be
184
- bitwise ORed with :const: `LOCK_NB ` to avoid blocking on lock acquisition.
185
- If :const: `LOCK_NB ` is used and the lock cannot be acquired, an
181
+ Release an existing lock.
182
+
183
+ .. data :: LOCK_SH
184
+
185
+ Acquire a shared lock.
186
+
187
+ .. data :: LOCK_EX
188
+
189
+ Acquire an exclusive lock.
190
+
191
+ .. data :: LOCK_NB
192
+
193
+ Bitwise OR with any of the other three ``LOCK_* `` constants to make
194
+ the request non-blocking.
195
+
196
+ If :const: `!LOCK_NB ` is used and the lock cannot be acquired, an
186
197
:exc: `OSError ` will be raised and the exception will have an *errno *
187
- attribute set to :const: `EACCES ` or :const: `EAGAIN ` (depending on the
198
+ attribute set to :const: `~errno. EACCES ` or :const: `~errno. EAGAIN ` (depending on the
188
199
operating system; for portability, check for both values). On at least some
189
- systems, :const: `LOCK_EX ` can only be used if the file descriptor refers to a
200
+ systems, :const: `! LOCK_EX ` can only be used if the file descriptor refers to a
190
201
file opened for writing.
191
202
192
203
*len * is the number of bytes to lock, *start * is the byte offset at
0 commit comments