このモジュールは、ファイル記述子の指すファイルの制御、I/O 制御を行います。 これは、Unix ルーチン fcntl() と ioctl() へのインターフェース です。ファイル記述子は、file オブジェクトまたは socket オブジェクトの fileno() メソッドにより取得することができます。
このモジュールには、以下の関数が定義されています。
ライブラリモジュール FCNTL または IOCTL が無い場合は、C のインクルード ファイル <sys/fcntl.h> または <sys/ioctl.h> の 中で操作コードを見つけることができます。また、これらモジュールは、ディレクトリ "Tools/scripts/" の中のスクリプト h2py により、自分で作成する こともできます。
例(全てのSVR4互換のシステム上)
import struct, FCNTL file = open(...) rv = fcntl(file.fileno(), FCNTL.O_NDELAY, 1) lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) rv = fcntl(file.fileno(), FCNTL.F_SETLKW, lockdata)
変数 rv には、最初の例では整数の戻り値が格納され、2番目の例では文字列 が格納されることに注意してください。変数 lockdata の構造のレイアウトは、 システムに依存します。従って、flock() コールを使う方がより良いと 言えます。
guido@python.org