doc/ja_JP.eucJP/man/man9/VOP_GETEXTATTR.9
Kazuo Horikawa d7147333db Catch up with 5.1-CURRENT-20031107-JPSNAP
Submitted by:	Akira Ikeuchi <ikeuchi@t-i-t.co.jp>
2003-11-21 03:03:11 +00:00

134 lines
4 KiB
Groff

.\"-
.\" 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 で置き換えられる予定です。