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
@@ -74,7 +74,7 @@ The module defines the following functions:
74
74
most likely to result in a segmentation violation or a more subtle data
75
75
corruption.
76
76
77
- If the :c:func: `fcntl ` fails, an :exc: `OSError ` is raised.
77
+ If the :c:func: `fcntl ` call fails, an :exc: `OSError ` is raised.
78
78
79
79
.. audit-event :: fcntl.fcntl fd,cmd,arg fcntl.fcntl
80
80
@@ -112,7 +112,7 @@ The module defines the following functions:
112
112
buffer 1024 bytes long which is then passed to :func: `ioctl ` and copied back
113
113
into the supplied buffer.
114
114
115
- If the :c:func: `ioctl ` fails, an :exc: `OSError ` exception is raised.
115
+ If the :c:func: `ioctl ` call fails, an :exc: `OSError ` exception is raised.
116
116
117
117
An example::
118
118
@@ -137,7 +137,7 @@ The module defines the following functions:
137
137
:manpage: `flock(2)` for details. (On some systems, this function is emulated
138
138
using :c:func: `fcntl `.)
139
139
140
- If the :c:func: `flock ` fails, an :exc: `OSError ` exception is raised.
140
+ If the :c:func: `flock ` call fails, an :exc: `OSError ` exception is raised.
141
141
142
142
.. audit-event :: fcntl.flock fd,operation fcntl.flock
143
143
@@ -149,17 +149,28 @@ The module defines the following functions:
149
149
method are accepted as well) of the file to lock or unlock, and *cmd *
150
150
is one of the following values:
151
151
152
- * :const: `LOCK_UN ` -- unlock
153
- * :const: `LOCK_SH ` -- acquire a shared lock
154
- * :const: `LOCK_EX ` -- acquire an exclusive lock
152
+ .. data :: LOCK_UN
155
153
156
- When *cmd * is :const: `LOCK_SH ` or :const: `LOCK_EX `, it can also be
157
- bitwise ORed with :const: `LOCK_NB ` to avoid blocking on lock acquisition.
158
- If :const: `LOCK_NB ` is used and the lock cannot be acquired, an
154
+ Release an existing lock.
155
+
156
+ .. data :: LOCK_SH
157
+
158
+ Acquire a shared lock.
159
+
160
+ .. data :: LOCK_EX
161
+
162
+ Acquire an exclusive lock.
163
+
164
+ .. data :: LOCK_NB
165
+
166
+ Bitwise OR with any of the other three ``LOCK_* `` constants to make
167
+ the request non-blocking.
168
+
169
+ If :const: `!LOCK_NB ` is used and the lock cannot be acquired, an
159
170
:exc: `OSError ` will be raised and the exception will have an *errno *
160
- attribute set to :const: `EACCES ` or :const: `EAGAIN ` (depending on the
171
+ attribute set to :const: `~errno. EACCES ` or :const: `~errno. EAGAIN ` (depending on the
161
172
operating system; for portability, check for both values). On at least some
162
- systems, :const: `LOCK_EX ` can only be used if the file descriptor refers to a
173
+ systems, :const: `! LOCK_EX ` can only be used if the file descriptor refers to a
163
174
file opened for writing.
164
175
165
176
*len * is the number of bytes to lock, *start * is the byte offset at
0 commit comments