1.列出相应路径的扩展属性
Ssize_t listxattr(const char *path , //路径
char *list, //是扩展属性名字,是一个数组,每个扩展属性以\0结束 例如:user.name1\0system.name1\0user.name2\0
size_t size); //分配缓存的大小
返回的是扩展属性的大小 包括/0;
2.列出扩展属性所对应的值
ssize_t getxattr(const char *path, //路径
const char *name, //扩展属性名字
void *value, //扩展属性所对应的值
size_t size); //扩展属性的长度
3.设置扩展属性
setxattr(path, //路径
key, //扩展属性的名字
value, // 扩展属性的值
size, //扩展属性的长度
flags); //标识
例子:
#include<stdio.h>
#include<attr/xattr.h>
#include<sys/types.h>
#include<string.h>
int main()
{
char list[1024]={0};
char value[1024]={0};
size_t size,size2;
int j=0;
int i=0;
int m=0;
int k=0;
char ch[100],ch1[100]={0},ch2[100]={0};
printf("please input path or path+file:");
scanf("%s",ch);
for(;j<100;j++){
if('\0'==ch[j])break;
ch1[j]=ch[j];
}
size=listxattr(ch1,list,1024);
for(;i<size;i++){
printf("%c",list[i]);
if('\0'==list[i]){
size2=getxattr(ch1,ch2,value,1024);
printf(" %s\n",value);
memset(ch2,0,100);
k=0;
continue;
}
ch2[k]=list[i];
k++;
}
return 1;
}