Unixプラットフォームで利用できます。
このモジュールでは、組み込みのファイルオブジェクトの上にいくつかの 追加機能を実装しています。特に、このオブジェクトはファイルのロック機構、 ファイルフラグへの操作、およびファイルオブジェクトを複製するための 簡単なインタフェースを実装しています。オブジェクトは全ての標準 ファイルオブジェクトのメソッドに加え、以下に述べるメソッドを持って います。このモジュールはファイルのロック機構に fcntl.fcntl() を用いるため、ある種の Unixでしか動作しません。
posixfile オブジェクトをインスタンス化するには、 posixfile モジュールの open() 関数を使います。生成されるオブジェクト は標準ファイルオブジェクトとだいたい同じルック& フィールです。
posixfile モジュールでは、以下の定数を定義しています:
posixfile モジュールでは以下の関数を定義しています:
filename[, mode[, bufsize]]) |
fileobject) |
posixfile オブジェクトでは以下の追加メソッドを定義しています:
fmt, [len[, start[, whence]]]) |
0
です。 start にはロックする部分の先頭オフセットを指定し、その
標準値は 0
です。whence 引数はオフセットをどこからの
相対位置にするかを指定します。この値は定数 SEEK_SET、
SEEK_CUR、または SEEK_END のいずれかになります。
標準の値は SEEK_SET です。引数についてのより詳しい情報は
システムの fcntl(2) マニュアルページを参照してください。
[flags]) |
) |
fd) |
) |
全てのメソッドで、要求された操作が失敗した場合には IOError が送出されます。
lock() の書式指定文字には以下のような意味があります:
書式指定 | 意味 |
---|---|
u | 指定領域のロックを解除します |
r | 指定領域の読み出しロックを要求します |
w | 指定領域の書き込みロックを要求します |
これに加え、以下の修飾子を書式に追加できます:
修飾子 | 意味 | 注釈 |
---|---|---|
| | ロック操作が処理されるまで待ちます | |
? | 要求されたロックと衝突している第一のロックを返すか、衝突がない場合には None を返します。 |
(1) |
注釈:
(mode, len,
start, whence, pid)
の形式で、mode
はロックの形式を表す文字 ('r' または 'w') です。この修飾子は
ロック要求の許可を行わせません; すなわち、問い合わせの目的にしか
使えません。
flags() の書式指定文字には以下のような意味があります:
書式 | 意味 |
---|---|
a | 追記のみ (append only) フラグ |
c | 実行時クローズ (close on exec) フラグ |
n | 無遅延 (no delay) フラグ (非ブロック (non-blocking) フラグとも呼ばれます) |
s | 同期 (synchronization) フラグ |
これに加え、以下の修飾子を書式に追加できます:
修飾子 | 意味 | 注釈 |
---|---|---|
! | 指定したフラグを通常の 'オン' にせず 'オフ' にします | (1) |
= | フラグを標準の 'OR' 操作ではなく置換します。 | (1) |
? | 設定されているフラグを表現する文字からなる文字列を返します。 | (2) |
注釈:
以下に例を示します:
import posixfile file = posixfile.open('/tmp/test', 'w') file.lock('w|') ... file.lock('u') file.close()