getxattrのヘルプ・マニュアル
日本語 英語
getxattr --help
man getxattr
GETXATTR(2) Linux Programmer’s Manual GETXATTR(2)
名前
getxattr, lgetxattr, fgetxattr - 拡張属性の値を取得する
書式
#include
#include
ssize_t getxattr(const char *path, const char *name,
void *value, size_t size);
ssize_t lgetxattr(const char *path, const char *name,
void *value, size_t size);
ssize_t fgetxattr(int fd, const char *name,
void *value, size_t size);
説明
拡張属性は、inode (ファイル、ディレクトリ、シンボリックリンク等) に関連
付けられた name:value の対である。これらは、システム上のすべての inode
に 関連付けられた通常の属性 (stat(2) が返すデータ) を拡張するものである
。拡張属性のコンセプトは attr(5) に書かれている。
getxattr() は、ファイルシステム内の指定された path に対応す る 、 名 前
name の拡張属性の value (値) を取得する。属性 value の長さが返される。
lgetxattr() は getxattr() と同じだが、シンボリックリンクの場合に、リン
クが参照しているファイルではなく、リンクそのものの情報を取得する点だ け
が異なる。
fgetxattr() は getxattr() と同じだが、 path の代わりに fd で参照された
オープン済みファイルの情報だけを取得する点が異なる (fd は open(2) に よ
って返される)。
拡 張属性の名前 name は普通の NULL 終端された文字列である。名前には、名
前空間を表す接頭辞 (prefix) が含まれる; 個々の inode に対して、互いに独
立 な名前空間が複数あってもよい。拡張属性の値は、ある一定の長さの任意の
テキスト・データまたはバイナリ・データの集合である。
size に 0 を指定して空のバッファをこれらのシステムコールに渡すことが で
き 、この場合には指定された名前の拡張属性の現在のサイズが返される。この
方法は、拡張属性の値を保持するのに十分な大きさのバッファ・サイズを見 積
もるのに使うことができる、
こ のシステムコール・インタフェースは、初期バッファのサイズの推測をした
り、与えられたバッファが小さすぎたことを返り値で知らせることでバッフ ァ
を大きくしたりできるように設計されている。
返り値
成 功した場合、拡張属性の値の長さを表す正の数が返される。失敗した場合、
-1 が返され、 errno に適切な値がセットされる。
指定された名前の属性が存在しない場合、またはプロセスがその属性にアク セ
スする権限がない場合、 errno に ENOATTR がセットされる。
value バッファの大きさ size が結果を保持するのに十分な大きさでない場合
、 errno に ERANGE がセットされる。
拡張属性がそのファイルシステムでサポートされていない場合、もしくは無 効
になっている場合、 errno に ENOTSUP がセットされる。
stat(2) システムコールの説明に書かれているエラーはこれらのシステムコー
ルにも適用される。
バージョン
これらのシステムコールはカーネル 2.4 以降の Linux で利用できる。 glibc
でのサポートはバージョン 2.3 以降で行われている。
準拠
これらのシステムコールは Linux 独自である。
関連項目
getfattr(1), setfattr(1), listxattr(2), open(2), removexattr(2), setx-
attr(2), stat(2), attr(5), symlink(7)
Linux 2001-12-01 GETXATTR(2)