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.

The “N” in NFS stands for Not, or Need, or perhaps Nightmare
— Harry Spencer