removexattr, lremovexattr, fremovexattr -
拡張属性を削除する
#include <sys/types.h>
#include <sys/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)
によって返される)。
拡張属性の名前は、普通のヌル終端された文字列である。
name
には、名前空間を表す接頭辞
(prefix) が含まれる。
個々の inode
に対し、互いに独立な名前空間が複数あってもよい。
返り値¶
成功した場合、0
が返される。
失敗した場合、 -1
が返され、
errno
に適切な値がセットされる。
エラー¶
- ENOATTR
- 指定された属性が存在しない。(ENOATTR
は <attr/xattr.h> で ENODATA
の同義語として定義されている。)
- 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.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。