FHOPEN(2)

名称
fhopen, fhstat, fhstatfs - ファイルハンドルによるファイルアクセス

ライブラリ
libc

書式
<sys/param.h> <sys/mount.h> <sys/stat.h> int fhopen(const fhandle_t *fhp, int flags) int fhstat(const fhandle_t *fhp, struct stat *sb) int fhstatfs(const fhandle_t *fhp, struct statfs *buf)

解説
これらの関数はファイルハンドル fhp で渡されたファイルにアクセスする手段を提供します。 この方法はディレクトリのアクセス制限をバイパスするので、 これらのシステムコールの使用はスーパユーザに限定されています。

fhopen() は fhp が参照するファイルを flags で指定にしたがって読み出し / 書き込み / 読み書き用にオープンし、 呼び出したプロセスにファイル記述子を返します。 flags は、 open(2) の呼び出す時に使われる各種フラグの or をとって指定します。 ただし、フラグのうち O_CREAT は使えません。

fhstat() と fhstatfs() はオープンされたファイルではなく、 fhp によって指し示されたファイルの情報を返すことを除いて fstat(2) と fstatfs(2) 呼び出しと同等の機能を提供します。

戻り値
処理が正常に完了すると、 fhopen() はオープンされたファイルの記述子を返します。 そうでない場合は -1 が返され、エラーを示すために errno が 設定されます。

エラー
open(2), fstat(2), fstatfs(2) のそれぞれの返すエラーに加えて fhopen(), fhstat(), fhstatfs() は次のエラーを返します。

[EINVAL]
    fhopen() が O_CREAT をセットされて呼び出されました。

[ESTALE]
    ファイルハンドル fhp はもう有効ではありません。

関連項目
fstat(2), fstatfs(2), getfh(2), open(2)

歴史
関数 fhopen(), fhstat(), fhstatfs() は NetBSD 1.5 で最初に登場しました。Alfred Perlstein が FreeBSD 4.0 に移植しました。

作者
このマニュアルページは William Studenmund によって NetBSD 用に書かれました。