EN JA
VOP_RDWR(9)
VOP_RDWR(9) FreeBSD Kernel Developer's Manual VOP_RDWR(9)

名称

VOP_READ, VOP_WRITEファイルを読み込むか、またはファイルに書き込み

書式

#include < sys/param.h>
#include < sys/vnode.h>
#include < sys/uio.h>

int
VOP_READ( struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred);

int
VOP_WRITE( struct vnode *vp, struct uio *uio, int ioflag, struct ucred *cred);

解説

これらのエントリポイントは、ファイルの内容を読み込むか、または書き込みます。

引数は、次の通りです:

vp
ファイルの vnode。
uio
読み込まれるか、または書き込まれるデータの位置。
ioflag
様々なフラグ。
cnp
呼び出し側の資格証明。

ioflag 引数は、ファイルシステムに指示とヒントを与えるために使用されます。読み込みを試みるとき、上位の 16 ビットは、ファイルシステムが試みるべき (ファイルシステムのブロック単位で) 先読み (read-ahead) のヒントを提供するために使用されます。下位の 16 ビットは、次のフラグを含むことができるビットマスクです:

IO_UNIT
不可分な I/O を行います。
IO_APPEND
終りに書き込みを追加します。
IO_SYNC
同期して I/O を行います。
IO_NODELOCKED
既にロックされている基本的なノード。
IO_NDELAY
FNDELAY フラグは、ファイルテーブルに設定します。
IO_VMIO
既にある VMIO 空間のデータ。

ロック

ファイルは、入口でロックされるべきであり、出口でもまだロックされたままです。

戻り値

成功すれば、0 が返され、そうでなければ、エラーコードが返されます。

エラー

[ EFBIG]
プロセスのファイルサイズの制限または最大のファイルサイズを越えるファイルを書き込む試みが行われました。
[ ENOSPC]
ファイルシステムが満杯です。
[ EPERM]
追加のみのフラグが、ファイルに設定されていますが、呼び出し側が、ファイルの現在の終りの前に書き込むことを試みています。

関連項目

uiomove(9), vnode(9)

作者

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