| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
gauche.fcntl - 低レベルファイル操作 アドバイザリ・ファイルロックを含む、
fcntl(2)へのインタフェースを提供します。
port-or-fd で指定されたファイルに対して特定の操作をおこないます。
ファイル指定は、ポートオブジェクトもしくはシステムのファイルディスクリプタ
である整数でなくてはなりません。それがポートである場合には、すでにオープン
されたファイルを結びついていなければなりません。
(port-type が file を返すようなポートということです。
ポート共通の操作参照。)
操作は整数 operation で指定します。 いくつかの変数が定義されいて、operation に使用できます。
F_GETFDport-or-fd のファイルディスクリプタに結びついているフラグを返します。
オプション引数のargは使われません。返り値は整数で、その定義はシステム
によります。ただし、FD_CLOEXECだけは例外で、これはexecで
クローズされたことを示しています。
詳しくはあなたのシステムのfcntl(2)のマニュアルエントリを
参照してください。
F_SETFDport-or-fdのファイルディスクリプタのフラグを与えられたargに
します。たとえば、FL_CLOEXECフラグを設定する、互換性のある方法では
次のようにします。
(sys-fcntl port F_SETFD
(logior FD_CLOEXEC
(sys-fcntl port F_GETFD)))
|
F_GETFLport-or-fdによって指定されたオープンしたファイルに結びついている フラグを返します。このフラグには以下のような情報が含まれています。
O_ACCMODE でマスクしたとき、
これは、O_RDONLY、O_WRONLY、O_RDWRのうちどれかひとつです。
O_CREAT、O_EXCLのどちらか、または両方。
O_TRUNC.
O_APPENDでマスクしたとき、追記が許されているかどうか。
O_NONBLOCKでマスクしたとき、I/O が非ブロックモードかブロックモードか。
O_NOCTTYでマスクしたとき、端末制御を切離しているかどうか。
システムが、そのシステム特有のフラグを定義していることがあります。
F_SETFLport-or-fdで指定したオープンされたファイルのフラグを設定します。
上に列挙されたフラグのうち、O_NONBLOCK と O_APPEND だけが
変更可能です。
F_GETFD/F_SETFD はファイルディスクリプタそのものに結びついた
フラグについてであり、一方、F_GETFL/F_SETFL はオープンされた
ファイルそのものに結びついているフラグについての操作であることに注意して
ください。この違いは、2つ以上のファイルディスクリプタが同じオープンされた
ファイルを指しているような場合にあらわれます。
F_DUPFDport-or-fdで参照しているのと同じファイルを指す新しいファイル ディスクリプタを生成します。 argで整数を与えなければなりません。この数は割り当てられる ファイルディスクリプタの最小値を指定します。
F_GETLK3つめの引数を与えなければなりません。これは、以下に述べる<sys-flock>
オブジェクトのインスタンスでなければなりません。argで指定された
ロック情報を検索し、それにしかるべく変更します。
F_SETLKF_SETLKW3つめの引数を与えなければなりません。これは、以下に述べる<sys-flock>
オブジェクトのインスタンスでなければなりません。argにしたがって、
アドバイザリロックを設定します。ロックの取得に成功すれば、#tが
返ります。もし、別のプロセスがロックをもっていて要求したものと衝突した
場合には F_SETLK のときは #f を返します。一方、F_SETLKW
のときはロックが利用可能になるまで待ちます。
F_GETOWN当該ファイルディスクリプタ上のイベント用シグナル、SIGIO および SIGURG を 受けとることになるプロセスのプロセスIDあるいはプロセスグループを返します。 プロセスグループは負の値で表示されます。このフラグはシステムにこのような 機能がある場合にのみ利用可能です(BSD や Linux にはこの機能があります)。
F_SETOWN当該ファイルディスクリプタ上のイベント用シグナル、SIGIO および SIGURG を 受けとることになるプロセスのプロセスIDあるいはプロセスグループを設定します。 プロセスグループは負の値で表示されます。このフラグはシステムにこのような 機能がある場合にのみ利用可能です(BSD や Linux にはこの機能があります)。 詳細については、お使いのシステムの fcntl(2) のマニュアルページをチェック してください。
これ以外の値を operation で指定しようとするとエラーになります。
POSIX のアドバイザリレコードロックを表わす構造体です。アドバイザリレコードロック
というのは、適切なロックをもたないプロセスが対象ファイルを操作しても
システムは関知しない、ということです。すべてのプロセスが、共有される可能性
のあるファイルを操作する前にロックをfcntlを使って検査することが
期待されています。
ロックのタイプを表す整数です。利用可能な値として以下の変数があらかじめ 定義されています。
F_RDLCK読み込みのロック
F_WRLCK書き込みのロック
F_UNLCKF_SETLKによるロックを除去するか、あるいはレコードがF_GETLK
でロックされていないことを示す。
startの計測が開始される位置を示す。
ロックされる領域の開始位置オフセット
ロックされるバイト数。ゼロは「EOFまで」という意味。
当該のロックをもっている整数のプロセスID。F_GETLKでのみ使用。
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Shiro Kawai on October, 7 2008 using texi2html 1.78.