removexattr, lremovexattr, fremovexattr -
拡張属性を削除する
#include <sys/types.h>
#include <attr/xattr.h>
int removexattr(const char *path, const char *name);
int lremovexattr(const char *path, const char *name);
int fremovexattr(int fd, const char *name);
拡張属性は、inode
(ファイル、ディレクトリ、シンボリックリンク等)
に 関連付けられた
name:
value の対である。
これらは、システム上のすべての
inode
に関連付けられた通常の属性
(
stat(2) が返すデータ)
を拡張するものである。
拡張属性のコンセプトは
attr(5)
に書かれている。
removexattr()
は、ファイルシステム内の指定された
path に対応する、名前
name
の拡張属性を削除する。
lremovexattr() は
removexattr()
と同じだが、シンボリックリンクの場合に、リンクが参照しているファイル
ではなく、リンクそのものの情報を削除する点だけが異なる。
fremovexattr() は
removexattr()
と同じだが、
path
の代わりに
fd
で参照されたオープン済みファイルから拡張属性を削除するだけである点が異なる
(
fd は
open(2)
によって返される)。
拡張属性の名前は、普通の
NULL
終端された文字列である。
name
には、名前空間を表す接頭辞
(prefix) が含まれる。
個々の inode
に対し、互いに独立な名前空間が複数あってもよい。
返り値¶
成功した場合、0
が返される。
失敗した場合、 -1
が返され、
errno
に適切な値がセットされる。
指定された名前の属性が存在しない場合、
errno に
ENOATTR
がセットされる。
拡張属性がそのファイルシステムでサポートされていない場合、
もしくは無効になっている場合、
errno に
ENOTSUP
がセットされる。
stat(2)
システムコールの説明に書かれているエラーは
これらのシステムコールにも適用される。
バージョン¶
これらのシステムコールはカーネル
2.4 以降の Linux
で利用できる。 glibc
でのサポートはバージョン
2.3
以降で行われている。
これらのシステムコールは
Linux 独自である。
関連項目¶
getfattr(1),
setfattr(1),
getxattr(2),
listxattr(2),
open(2),
setxattr(2),
stat(2),
attr(5),
symlink(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.41 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。