EN JA
VOP_OPEN(9)
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 が返され、そうでなければ、エラーコードが返されます。

関連項目

vnode(9), VOP_LOOKUP(9)

作者

このマニュアルページは、 Doug Rabson によって書かれました。
December 2, 2009 FreeBSD