VOP_GETEXTATTR(9) FreeBSD 一般コマンドマニュアル

VOP_GETEXTATTR

前のページ 上に戻る 次のページ

VOP_GETEXTATTR


     #include <sys/vnode.h>
     #include <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 引数が無効です。

ABELNET VPSサービス