listxattrのヘルプ・マニュアル
日本語 英語
listxattr --help
man listxattr
LISTXATTR(2) Linux Programmer’s Manual LISTXATTR(2)
名前
listxattr, llistxattr, flistxattr - 拡張属性の名前リストを得る
書式
#include
#include
ssize_t listxattr(const char *path, char *list, size_t size);
ssize_t llistxattr(const char *path, char *list, size_t size);
ssize_t flistxattr(int fd, char *list, size_t size);
説明
拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に関連
付けられた name:value の対である。これらは、システム上のすべての inode
に 関連付けられた通常の属性 (stat(2) が返すデータ) を拡張するものである
。拡張属性のコンセプトは attr(5) に書かれている。
listxattr() は、ファイルシステム内の指定された path に対応する拡張属 性
の 名前リストを取得する。リストは名前の集合で、 NULL 終端された文字列が
連続して並んでいる。呼び出したプロセスがアクセスする権限のない拡張属 性
の名前は、リストに含まれない。拡張属性の名前の list の長さが返される。
llistxattr() は listxattr() と同じだが、シンボリックリンクの場合に、リ
ンクが参照しているファイルではなく、リンクそのものの拡張属性の名前リ ス
トを取得する点だけが異なる。
flistxattr() は listxattr() と同じだが、 path の代わりに fd で参照され
たオープン済みファイルの情報だけを取得する点 が 異 な る (filedes は
open(2) によって返される)。
個 々の拡張属性の name は普通の NULL 終端された文字列である。名前には、
名前空間を表す接頭辞 (prefix) が含まれる; 個々の inode に対して、互いに
独立な名前空間が複数あってもよい。
size に 0 を指定して空のバッファをこれらのシステムコールに渡すことがで
き、この場合には拡張属性の名前リストの現在のサイズが返される。この方 法
は 名前リストを保持するのに十分な大きさのバッファ・サイズを見積もるのに
使うことができる、
例
返される名前の list は、 NULL 終端された文字列の配列 (属性名は NULL バ
イ ト ('\0') で区切られている) で、各要素は整列されている訳ではない。以
下に例を示す:
user.name1\0system.name1\0user.name2\0
拡張属性を使って POSIX ACL を実装している ext2、ext3、XFS のようなフ ァ
イルシステムでは、返される list は以下のようになることだろう:
system.posix_acl_access\0system.posix_acl_default\0
返り値
成 功した場合、拡張属性の名前リストの長さを表す正の数が返される。失敗し
た場合、 -1 が返され、 errno に適切な値がセットされる。
list バッファの大きさ size が結果を保持するのに十分な大きさでない場合、
errno に ERANGE がセットされる。
拡 張属性がそのファイルシステムでサポートされていない場合、もしくは無効
になっている場合、 errno に ENOTSUP がセットされる。
stat(2) システムコールの説明に書かれているエラーはこれらのシステムコ ー
ルにも適用される。
バージョン
こ れらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 glibc
でのサポートはバージョン 2.3 以降で行われている。
準拠
これらのシステムコールは Linux 独自である。
関連項目
getfattr(1), setfattr(1), getxattr(2), open(2), removexattr(2), setx-
attr(2), stat(2), attr(5), symlink(7)
Linux 2001-12-01 LISTXATTR(2)