VOP_GETEXTATTR(9)

名称
VOP_GETEXTATTR - vnode からの名前付き拡張属性の取り出し

書式
<sys/param.h> <sys/vnode.h> <sys/extattr.h> int VOP_GETEXTATTR(struct vnode *vp, char *name, struct uio *uio, struct ucred *cred, struct proc *p)

解説
この vnode 呼び出しは、ファイルまたはディレクトリから、 指定した名前付き拡張属性を取り出すために使用することができます。

引数は以下の通りです。

vp  ファイルまたはディレクトリの vnode。

name
    属性名が入った null で終端された文字列へのポインタ。

uio 読み込むまたは書き込むべきデータの位置。

cred
    要求の認証で使用するためのユーザ証明。

p   拡張属性を要求しているプロセス。

cred ポインタは、 NULL を渡すことができ、 可能であるならばアクセス制御チェックが実行されないことを指示します。 この cred の設定は、アクティブプロセスに許されていない拡張属性の取り出しを カーネルが正当化することを認めるために使用可能です。

拡張属性のセマンティクスはファイルシステムの呼び出しの実装によって 異なるでしょう。拡張属性のより多くの情報は extattr(9) を参照してください。

LOCKS
この vnode メソッドを呼び出すためにはロックは不要であり、 入る時に保持していた全てのロックは戻り時まで保持されます。

戻り値
成功時には 0 が返され、読み込んだデータを反映して uio 構造体が更新されます。 そうでなければ適切なエラーコードが返されます。

エラー

[ENOENT]
    この vnode のための属性名が定義されていません。

[EACCES]
    許可されませんでした。

[ENXIO]
    指定された vnode および属性名に対する要求は、このファイルシステムでは無効です。

[ENOMEM]
    要求を実行するための十分なメモリがありません。

[EFAULT]
    uio 構造体が無効なユーザ空間アドレスを参照しています。

[EINVAL]
    name または uio 引数が無効です。

[EOPNOTSUPP]
    ファイルシステムが VOP_GETEXTATTR() をサポートしていません。

関連項目
extattr(9), vnode(9), VOP_SETEXTATTR(9)