tail head cat sleep
QR code linking to this page

manページ  — VOP_OPEN

名称

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, int fdidx);

int
VOP_CLOSE(struct vnode *vp, int mode, struct ucred *cred, struct thread *td);

解説

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

引数は以下の通りです。
vp
  ファイルの vnode。
mode
  呼び出しプロセスによって要求されたアクセスモード。
td
  ファイルにアクセスしているスレッド。

加えて、 VOP_OPEN()fdidx の中のファイル記述子番号を受け入れることが可能です。 これは例えば fdesc(5) のような情報を要求するファイルシステムで有用です。

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

ロック

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

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

実装に関する注

VOP_OPEN() への fdidx 引数は現在使用されておらず、当面は ‘-1’ を使用します。 しかしながら、これは将来変更されます。

戻り値

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

疑似コード

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

関連項目

vnode(9), VOP_LOOKUP(9)

作者

このマニュアルページは Doug Rabson が書きました。

VOP_OPEN (9) July 24, 1996

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.