スポンサーリンク

EXTATTR(9) FreeBSD カーネル開発者マニュアル EXTATTR(9)

名称

extattr − 仮想ファイルシステムの名前付き拡張属性

書式

#include <sys/param.h>
#include <sys/vnode.h>
#include <sys/extattr.h>

解説

名前付き拡張属性は、ファイルまたはディレクトリを表現する vnode に追加のメ タデータを関連付けることを可能にします。この追加のデータのセマンティクス は、"name=value" ("名前=値") のペアで、名前は定義されても定義されなくても 良く、定義されていれば、0 バイト以上の任意のバイナリデータに関連付けられ ます。拡張属性の名前は名前空間の集合の中に存在します。拡張属性上の個々の 操作は、操作を参照するために名前空間を供給することが要求されています。複 数の名前空間の中に同じ名前が存在する場合には、その名前に関連付けられた拡 張属性は、独立して格納され、操作されます。次の 2 つの名前空間が普遍的に定 義されていますが、個々のファイルシステムは追加の名前空間を実装することが 可能で、またこれら EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM の名 前空間を実装しないことも可能です。これらの属性のセマンティクスは以下を意 図しています。ユーザ属性データは、ファイルまたはディレクトリの中のデータ に関連付けられた通常の任意および必須の保護によって、保護されます。システ ム属性データは、これらの属性への直接的なアクセスまたは操作には適切な特権 が要求されることによって、保護されます。

拡張属性データの読み込みは、 VOP_READ(9) の形式で、明示されたメタデータの 連続した領域を返します。一方、書込みは、与えられた名前に関連付けられた現 在の "値" 全体が置き換えられます。拡張属性の違いを持つファイルシステムが 過多にあります。このため、これらの関数は、利用可能性および機能性は制限さ れるかもしれませんし、サポートするファイルシステムの基本的なセマンティク スを意識して使用するべきです。拡張属性データのための権限を与える機構は、 ファイルシステムによって異なります。これは、属性の最大の大きさや、任意ま たは特定の新規属性を定義可能か否かも同様です。

拡張属性は、ヌルで終端された文字列を使用して名前付けされます。名前は大文 字と小文字を区別するかもしれませんし、しないかもしれませんが、これは潜在 的なファイルシステムのセマンティクスに依存します。適切な vnode 拡張属性の 呼び出しは、 VOP_GETEXTATTR(9), VOP_LISTEXTATTR(9), および VOP_SETEXTATTR(9) です。

関連項目

VFS(9), VFS_EXTATTRCTL(9), VOP_GETEXTATTR(9), VOP_LISTEXTATTR(9), VOP_SETEXTATTR(9)

作者

このマニュアルページは Robert Watson が書きました。

バグ

加えて、このインタフェースは現在の利用可能な属性の組を取り出す仕組みを提 供していません。既に、 NULL の属性名を与えることで、渡されたファイルまた はディレクトリのための定義された属性のリストをもたらすべきであると提案さ れていますが、現在は実装されていません。

FreeBSD 10.0 December 23, 1999 FreeBSD 10.0

スポンサーリンク