2012-04-02 64 views
1

系统文件,读写o创建自定义元数据或属性扩展

我正在寻找一种方式来从任意文件读取,写入或创建(自定义)标签,扩展属性或元数据。没有图书馆和语言c或C++。我想我可以使用fopen,fread,fwrite,但不知道如何访问元数据。

由于提前,

+1

欢迎来到堆栈溢出。你可以更具体地说明你正在谈论的元数据或属性吗?你是指你正在创建和存储的元数据吗?或操作系统正在管理的元数据?您使用什么操作系统? – 2012-04-02 16:14:12

+0

我的意思是我正在创建和存储元数据。我的SO是Linux。 – Juan 2012-04-02 16:27:28

+0

因此,您只需创建将保存元数据的文件并写入该文件即可。你能告诉我们你试图做什么,以及你卡在哪里? – 2012-04-02 16:30:56

回答

4

Linux系统要求操作扩展属性是setxattrgetxattr,和remotexattr。这个程序可能会做你所要求的:

// UNTESTED 
#include <sys/types.h> 
#include <sys/xattr.h> 
#include <cstring> 
#include <cstdio> 

int main() { 
    const char* file = "/work/a.txt"; 
    const char* attr = "user.MyAttr"; 
    const char* value = "MyValue"; 
    int rc = setxattr(file, attr, value, strlen(value), 0); 
    if(rc < 0) 
    perror(file); 
    return !!rc; 
} 
+0

感谢罗布我会尝试。 – Juan 2012-04-02 16:58:54

+0

属性名称*可能*必须以'“user”为前缀。“,我不确定。 – 2012-04-02 17:00:27

+0

如果Rob在工作,则前缀“user”是强制性的。我在业余时间做这个项目。 **感谢** Rob。然后我告诉你。 – Juan 2012-04-03 09:25:43