.\"- .\" Copyright (c) 1999, 2000, 2001, 2003 Robert N. M. Watson .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" %FreeBSD: src/share/man/man9/VOP_GETEXTATTR.9,v 1.21 2003/10/23 02:11:14 hmp Exp % .\" .\" $FreeBSD$ .Dd December 23, 1999 .Os .Dt VOP_GETEXTATTR 9 .Sh 名称 .Nm VOP_GETEXTATTR .Nd vnode からの名前付き拡張属性の取り出し .Sh 書式 .In sys/param.h .In sys/vnode.h .In sys/extattr.h .Ft int .Fo VOP_GETEXTATTR .Fa "struct vnode *vp" .Fa "int attrnamespace" .Fa "const char *name" .Fa "struct uio *uio" .Fa "size_t *size" .Fa "struct ucred *cred" .Fa "struct thread *td" .Fc .Sh 解説 この vnode 呼び出しは、ファイルまたはディレクトリから、 指定した名前付き拡張属性を取り出すために使用することができます。 .Pp 引数は以下の通りです。 .Bl -tag -width ".Fa attrnamespace" .It Fa vp ファイルまたはディレクトリの vnode。 .It Fa attrnamespace どの拡張属性の名前空間に、その属性の名前が存在するのかを示す整数定数。 .It Fa name 属性名が入った null で終端された文字列へのポインタ。 .It Fa uio 読み込むべきデータの位置。 .It Fa size .Dv NULL でない場合には、戻る時に全ての属性データを読込むために要求される バイト数が含まれます。 殆んどの場合、 .Fa size が .Dv NULL ではない時には .Fa uio が .Dv NULL にされます。 またはその逆です。 .It Fa cred 要求の認証で使用するためのユーザ証明。 .It Fa td 拡張属性を要求しているスレッド。 .El .Pp .Fa cred ポインタは、 .Dv NULL を渡すことができ、 可能であるならばアクセス制御チェックが実行されないことを指示します。 この .Fa cred の設定は、アクティブプロセスに許されていない拡張属性の取り出しを カーネルが正当化することを認めるために使用可能です。 .Pp 拡張属性のセマンティクスはファイルシステムの呼び出しの実装によって 異なるでしょう。 拡張属性のより多くの情報は .Xr extattr 9 を参照してください。 .Sh LOCKS この vnode は入る時にロックされ、戻る時までロックされ続けるべきです。 .Sh 戻り値 成功時には 0 が返され、読み込んだデータを反映して uio 構造体が更新されます。 そうでなければ適切なエラーコードが返されます。 .Sh エラー .Bl -tag -width Er .It Bq Er ENOATTR 要求された属性は、この vnode のために定義されていません。 .It Bq Er EACCES 呼び出し側が適切な特権を持っていません。 .It Bq Er ENXIO 指定された vnode および属性名に対する要求は、このファイルシステムでは無効です。 .It Bq Er ENOMEM その要求を実行するための十分なメモリが利用可能ではありません。 .It Bq Er EFAULT uio 構造体が無効なユーザ空間アドレスを参照しています。 .It Bq Er EINVAL .Fa name , .Fa namespace , または .Fa uio 引数が無効です。 .It Bq Er EOPNOTSUPP ファイルシステムが .Fn VOP_GETEXTATTR をサポートしていません。 .El .Sh 関連項目 .Xr extattr 9 , .Xr vnode 9 , .Xr VOP_LISTEXTATTR 9 , .Xr VOP_SETEXTATTR 9 .Sh バグ 属性名として空の文字列を渡すことによって、いくつかのファイルシステムは、 要求された名前空間における対象 vnode の持つ定義された名前のリストを返します。 これは悪い API ですので、明示的な VOP で置き換えられる予定です。