listxattr(),getxattr(),setxattr()

 

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;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值