Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       listxattr, llistxattr, flistxattr - 拡張属性の名前リストを得る

書式

       #include <sys/types.h>
       #include <attr/xattr.h>

       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  に対応する拡張属性の名前リストを取得
       する。取得したリストは  list  に格納される。 list は呼び出し側で確保するバッファで、引き数
       size でバッファのサイズを (バイト単位で) 指定する。リストは名前の集合で、 NULL  終端された
       文字列が連続して並んでいる。呼び出したプロセスがアクセスする権限のない拡張属性の名前は、リ
       ストに含まれない。拡張属性の名前の list の長さが返される。

       llistxattr()  は listxattr()  と同じだが、シンボリックリンクの場合に、リンクが参照している
       ファイル ではなく、リンクそのものの拡張属性の名前リストを取得する点だけが異なる。

       flistxattr()  は listxattr()  と同じだが、 path の代わりに fd で参照されたオープン済みファ
       イルの情報だけを取得する点が異なる (filedesopen(2)  によって返される)。

       個々の拡張属性の name は普通の NULL 終端された文字列である。  名前には、名前空間を表す接頭
       辞 (prefix) が含まれる; 個々の inode に対して、互いに独立な名前空間が複数あってもよい。

       size  に 0 を指定して空のバッファをこれらのシステムコールに渡すことができ、 この場合には拡
       張属性の名前リストの現在のサイズが返される。  この方法は名前リストを保持するのに十分な大き
       さのバッファ・サイズを 見積もるのに使うことができる、

   Example
       返される名前の  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 に適切な値がセットされる。

エラー

       ENOTSUP
              拡張属性がそのファイルシステムでサポートされていない、 もしくは無効になっている。

       ERANGE list バッファの大きさ size が結果を保持するのに十分な大きさでなかった。

       上記に加えて、 stat(2) に書かれているエラーが発生する場合もある。

バージョン

       これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 glibc  でのサポートはバー
       ジョン 2.3 以降で行われている。

準拠

       これらのシステムコールは Linux 独自である。

関連項目

       getfattr(1),  setfattr(1),  getxattr(2),  open(2),  removexattr(2),  setxattr(2), stat(2),
       attr(5), symlink(7)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。