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]
- 追加のみのフラグが、ファイルに設定されていますが、呼び出し側が、ファイルの現在の終りの前に書き込むことを試みています。
作者
このマニュアルページは、 によって書かれました。July 24, 1996 | FreeBSD |