VOP_READDIR(9) | FreeBSD Kernel Developer's Manual | VOP_READDIR(9) |
名称
VOP_READDIR — ディレクトリ内容を読み込む書式
#include < sys/param.h>#include < sys/dirent.h>
#include < sys/vnode.h>
int
VOP_READDIR( struct vnode *vp, struct uio *uio, struct ucred *cred, int *eofflag, int *ncookies, u_long **cookies);
解説
ディレクトリエントリを読み込みます。- vp
- ディレクトリの vnode。
- uio
- ディレクトリ内容を読み込む場所。
- cred
- 呼び出し側の資格証明です。
- eofflag
- ファイルの終りの状態を返します (必要でなければ、 NULL)。
- ncookies
- NFS のために生成されたディレクトリのクッキーの数 (必要でなければ、 NULL)。
- cookies
- NFS のために生成されたディレクトリのシーク (seek) クッキー (必要でなければ、 NULL)。
ロック
ディレクトリは、(呼び出しの) 入口でロックされるべきであり、終了時もまだロックされています。戻り値
成功すれば、0 が返され、そうでなければ、エラーコードが返されます。これが、NFS サーバから呼び出されるなら、追加の引数 eofflag, ncookies と cookies が与えられます。 *eofflag の値は、読み込みの間にディレクトリの終りに到達したなら、 TRUE に設定されるべきです。ディレクトリのシーク (seek) クッキーは、NFS クライアントに返され、後で、ディレクトリの途中でディレクトリの読み込みを再開するために使用されます。ディレクトリエントリごとに返された 1 つのクッキーであるべきです。クッキーの値は、適切なディレクトリエントリのディスク上のバージョンが開始する、ディレクトリ内のオフセットであるべきです。クッキーのためのメモリは、次を使用して割り付けられるべきです:
...; *ncookies = number of entries read; *cookies = malloc(*ncookies * sizeof(u_long), M_TEMP, M_WAITOK);
エラー
- [ EINVAL]
- ディレクトリ内の不正なオフセットから読み込みを行おうとしました。
- [ EIO]
- ディレクトリの読み込み間に読み込みエラーが発生しました。
関連項目
vnode(9)作者
このマニュアルページは、 によって書かれました。July 24, 1996 | FreeBSD |