VOP_OPEN(9) | FreeBSD Kernel Developer's Manual | VOP_OPEN(9) |
名称
VOP_OPEN, VOP_CLOSE — ファイルをオープンするか、またはクローズする書式
#include < sys/param.h>#include < sys/vnode.h>
int
VOP_OPEN( struct vnode *vp, int mode, struct ucred *cred, struct thread *td, struct file *fp);
int
VOP_CLOSE( struct vnode *vp, int mode, struct ucred *cred, struct thread *td);
解説
VOP_OPEN() エントリポイントは、ファイルがプロセスによってアクセスされる前に呼び出され、 VOP_CLOSE() エントリポイントは、ファイルがプロセスによって終了された後に呼び出されます。引数は、次の通りです:
- vp
- ファイルの vnode。
- mode
- 呼び出しているプロセスによって要求されるアクセスモード。
- cred
- 呼び出し側の資格証明。
- td
- ファイルをアクセスしているスレッド。
- fp
- オープンされているファイル。
ファイル fp へのポインタは、例えば、 fdescfs(5) のような情報を必要とするファイルシステムの役に立ちます。カーネル内のオープンのために VOP_OPEN() への fp 引数として‘ NULL
’を使用します。
アクセスモードは、 FREAD, FWRITE, O_NONBLOCK, O_APPEND を含む 1 組のフラグです。
ロック
VOP_OPEN() は、入口で vp がロックされていて、返り時にロックされた vnode のままであると予想します。VOP_CLOSE() は、少なくとも 1 つの参照が vnode に関連していると予想し、vnode がロックされているかどうか気にしません。ロックと参照状態は、返り時に変更されないままです。 vn_close は、参照された vnode がロックさないことを予期し、返る前に vnode を逆参照とすることに注意してください。
戻り値
成功すれば、0 が返され、そうでなければ、エラーコードが返されます。作者
このマニュアルページは、 によって書かれました。December 2, 2009 | FreeBSD |