VOP_CLOSE(9) FreeBSD 一般コマンドマニュアル

VOP_CLOSE

前のページ 上に戻る 次のページ

VOP_CLOSE


     #include <sys/vnode.h>

     int
     VOP_OPEN(struct vnode *vp, int mode, struct ucred *cred, struct proc *p);

     int
     VOP_CLOSE(struct vnode *vp, int mode, struct ucred *cred,
             struct proc *p);


解説

     VOP_OPEN(9) エントリポイントは、ファイルがプロセスによってアクセスされる
     前に呼び出され、 VOP_CLOSE(9) エントリポイントは、ファイルに対するプロセ
     スの仕事の完了後に呼び出されます。

     引数は以下の通りです。

     vp    ファイルの vnode。

     mode  呼び出しプロセスによって要求されたアクセスモード。

     p     ファイルにアクセスしているプロセス。

     アクセスモードは、 FREAD, FWRITE, O_NONBLOCK, O_APPEND を含むフラグの組で
     す。


ロック

     VOP_OPEN(9) は、入る時に vp がロックされていることを期待し、戻り時まで
     ロックされたままにします。

     VOP_CLOSE(9) は、vnode に結びつけられた参照が少なくとも 1 個は存在するこ
     とを期待し、 vnode がロックされているかどうかは気にしません。ロックおよび
     参照状態は、戻る時に変更されずにそのままになります。 vn_close は、ロック
     されていない参照された vnode を期待し、戻る前に参照を手繰ることに注意して
     ください。


戻り値

     成功時には 0 が返され、そうでない場合にはエラーコードが返されます。


疑似コード

     int
     vop_open(struct vnode *vp, int mode, struct ucred *cred, struct proc *p)
     {
         /*
          * ほとんどのファイルシステムは、ここでは大したことはしません。
          */
         return 0;
     }


関連項目

     vnode(9), VOP_LOOKUP(9)


作者



ABELNET VPSサービス