EXTATTR
Section: System Calls (2)
索引
jman
BSD mandoc
索引
名称
extattr_get_fd
extattr_set_fd
extattr_delete_fd
extattr_list_fd
extattr_get_file
extattr_set_file
extattr_delete_file
extattr_list_file
extattr_get_link
extattr_set_link
extattr_delete_link
extattr_list_link
- VFS 拡張属性を操作するためのシステムコール
索引
ライブラリ
Lb libc
索引
書式
In sys/types.h
In sys/extattr.h
In sys/uio.h
Ft ssize_t
Fn extattr_get_fd int fd int attrnamespace const char *attrname void *data size_t nbytes
Ft int
Fn extattr_set_fd int fd int attrnamespace const char *attrname const void *data size_t nbytes
Ft int
Fn extattr_delete_fd int fd int attrnamespace const char *attrname
Ft ssize_t
Fn extattr_list_fd int fd int attrnamespace void *data size_t nbytes
Ft ssize_t
Fn extattr_get_file const char *path int attrnamespace const char *attrname void *data size_t nbytes
Ft int
Fn extattr_set_file const char *path int attrnamespace const char *attrname const void *data size_t nbytes
Ft int
Fn extattr_delete_file const char *path int attrnamespace const char *attrname
Ft ssize_t
Fn extattr_list_file const char *path int attrnamespace void *data size_t nbytes
Ft ssize_t
Fn extattr_get_link const char *path int attrnamespace const char *attrname void *data size_t nbytes
Ft int
Fn extattr_set_link const char *path int attrnamespace const char *attrname const void *data size_t nbytes
Ft int
Fn extattr_delete_link const char *path int attrnamespace const char *attrname
Ft ssize_t
Fn extattr_list_link const char *path int attrnamespace void *data size_t nbytes
索引
解説
名前付き拡張属性は、ファイルまたはディレクトリを表現する vnode に
関連付けられたメタデータです。
これらは名前空間の集合の中に
Qq Li name=value
Qq ( 名前=値 )
のペアとして存在します。
Fn extattr_get_file
システムコールは、指定された拡張属性の値を大きさが
Fa nbytes
の
Fa data
によって指されるバッファに取り出します。
Fn extattr_set_file
システムコールは、指定された拡張属性の値を
Fa data
に記述されたデータに設定します。
Fn extattr_delete_file
システムコールは、指定された拡張属性を削除します。
Fn extattr_list_file
は ASCII 0 (ヌル) 文字によって分離された、要求された名前空間の中に存在する
属性のリストを返します。
Fn extattr_get_file
および
Fn extattr_list_file
呼び出しは
read(2)
の形式で
Fa data
と
Fa nbytes
引数を使用します。
Fn extattr_set_file
は
write(2)
の形式でこれらの引数を使用します。
Fn extattr_get_file
の呼び出しの中で
Fa data
が
NULL
の場合には、読み込んだ量を返すのではなく、
定義された拡張属性データの大きさを返します。
これにより、
アプリケーションが読み込みを実行せずにデータの大きさを
テストすることを可能にします。
Fn extattr_delete_link ,
Fn extattr_get_link ,
Fn extattr_set_link
システムコールは、シンボリックリンクを辿らないことを除いて、名前が
Qq Li _file
のものと同じ動作をします。
Fn extattr_get_fd ,
Fn extattr_set_fd ,
Fn extattr_delete_fd
呼び出しは、最初の引数を除いて、名前が
Qq Li _file
のものと同じ動作をします。
Qq Li _fd
関数がファイル記述子を取るのに対し、
Qq Li _file
関数はパス名を取ります。
両方の引数は操作されるべき拡張属性に関連付けられたファイルを、記述します。
以下に、全てのシステムコールに共通な引数を記述します:
- Fa attrnamespace
-
拡張属性が属する名前空間です。
extattr(9)
を参照してください。
- Fa attrname
-
拡張属性の名前です。
名前付き拡張属性のセマンティクスは、
この呼び出しを実装するファイルシステムに依存し、一様ではありません。
特定の属性に対しては、全ての操作がサポートされないかもしれません。
加えて、
Fa data
に入るデータのフォーマットは、属性に特有です。
名前付き拡張属性についてのより多くの情報については、
extattr(9)
を参照してください。
索引
警告
このインタフェースは活発に開発中ですので、
アプリケーションがこのインタフェースを使うようになるのに従って、
変わるでしょう。
開発者がこれの安定を当てにすることは推奨されません。
索引
戻り値
成功の場合には、
Fn extattr_get_file
および
Fn extattr_set_file
の呼び出しは、各々
Fa data
から読込んだまたは書込んだバイト数を返します。
また、
Fa data
が
NULL
の場合には、
Fn extattr_get_file
は読込みに利用可能なバイト数を返します。
なにか呼び出しが失敗した場合には、値 -1 が返され、グローバル変数
errno
がそのエラーを示すために設定されます。
Rv -std extattr_delete_file
索引
エラー
システムコール自身によって、以下のエラーが返されることがあります。
加えて、呼び出しを実装しているファイルシステムは、希望するその他の
エラーを返すことがあります。
- Bq Er EFAULT
-
Fa attrnamespace
および
Fa attrname
引数、または
Fa data
および
Fa nbytes
によって定義されるメモリ範囲が、
プロセスに割り当てられたアドレス空間の外を指しています。
- Bq Er ENAMETOOLONG
-
属性の名前が
EXTATTR_MAXNAMELEN
より長くなっていました。
Fn extattr_get_fd ,
Fn extattr_set_fd ,
Fn extattr_delete_fd
システムコールは、次の場合に失敗することがあります:
- Bq Er EBADF
-
Fa fd
によって参照されるファイル記述子が無効です。
加えて、
Fn extattr_get_file ,
Fn extattr_set_file ,
Fn extattr_delete_file
の呼び出しは以下のエラーのため、失敗することがあります:
- Bq Er ENOATTR
-
要求された属性はこのファイルのために定義されていません。
- Bq Er ENOTDIR
-
パス名のプレフィックスの構成要素がディレクトリではありません。
- Bq Er ENAMETOOLONG
-
パス名の構成要素が 255 文字を超えている、
またはパス名全体が 1023 文字を超えています。
- Bq Er ENOENT
-
存在していなければならないパス名の構成要素が、存在していません。
- Bq Er EACCES
-
パス名のプレフィックスの構成要素の検索パーミッションがありません。
索引
関連項目
extattr(3),
getextattr(8),
setextattr(8),
extattr(9),
VOP_GETEXTATTR9,
VOP_SETEXTATTR9
索引
歴史
拡張属性サポートは
TrustedBSD
プロジェクトの一部として開発され、
Fx 5.0
で導入されました。
個々のファイルまたはディレクトリに関連付けられるための追加のラベルを
要求するセキュリティ拡張をサポートするために開発されました。
索引
バグ
この API の初期のバージョンでは、属性名として空の文字列を
Fn extattr_get_fd ,
Fn extattr_get_file
または
Fn extattr_get_link
に渡すことによって、目的のオブジェクトのために定義された属性のリストを
返しました。
明示的な list API を使用すべきなので、
このインタフェースは非推奨であり、使用されるべきではありません。
索引
Index
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 警告
-
- 戻り値
-
- エラー
-
- 関連項目
-
- 歴史
-
- バグ
-
Time: 07:06:25 GMT, January 12, 2009