posixfile
Note: This module will become obsolete in a future release.
The locking operation that it provides is done better and more
portably by the fcntl.lockf()
call.
This module implements some additional functionality over the built-in
file objects. In particular, it implements file locking, control over
the file flags, and an easy interface to duplicate the file object.
The module defines a new file object, the posixfile object. It
has all the standard file object methods and adds the methods
described below. This module only works for certain flavors of
Unix, since it uses fcntl()
for file locking.
To instantiate a posixfile object, use the open()
function in
the posixfile module. The resulting object looks and feels roughly
the same as a standard file object.
The posixfile module defines the following constants:
The posixfile module defines the following functions:
open()
function.
The posixfile object defines the following additional methods:
0
. start
specifies the starting offset of the section, where the default is
0
. The whence argument specifies where the offset is
relative to. It accepts one of the constants SEEK_SET
,
SEEK_CUR
or SEEK_END
. The default is SEEK_SET
.
For more information about the arguments refer to the fcntl
manual page on your system.
All methods return IOError
when the request fails.
Format characters for the lock()
method have the following meaning:
In addition the following modifiers can be added to the format:
Note:
(1) The lock returned is in the format (mode, len, start,
whence, pid)
where mode is a character representing the type of lock
('r' or 'w'). This modifier prevents a request from being granted; it
is for query purposes only.
Format character for the flags()
method have the following meaning:
In addition the following modifiers can be added to the format:
Note:
(1) The !
and =
modifiers are mutually exclusive.
(2) This string represents the flags after they may have been altered by the same call.
Examples:
from posixfile import * file = open('/tmp/test', 'w') file.lock('w|') ... file.lock('u') file.close()