首页 存档 技术 查看内容

Linux自主访问控制机制模块之详细描述-函数实现机制(17)

2018-3-30 13:00 |来自: 互联网 340 0

摘要: xattr.c文件 该文件定义的相关函数,下面接着进行详细解释: 10.removexattr() 函数原型: static long removexattr(structdentry *d, const char __user *name); 函数参数:d指向目标对象对应的目录项;name表 ...

xattr.c文件


该文件定义的相关函数,下面接着进行详细解释:

10.removexattr()

函数原型:


static long removexattr(structdentry *d, const char __user *name);


函数参数:d指向目标对象对应的目录项;name表示待删除的扩展属性的名字。

函数功能:删除参数name指定的扩展属性,该函数只是对vfs_removexattr()函数的封装。

返回值:成功时返回0;失败时返回相应的错误码。


11.generic_getxattr()

函数原型:


ssize_tgeneric_getxattr(structdentry *dentry, const char *name, void *buffer, size_t size);


函数参数:dentry表示目标文件对应的目录项;name表示要获取的扩展属性的名字;buffer指向存放扩展属性值的缓冲区;size表示缓冲区的长度。

函数功能:根据扩展属性所在的命名空间查找相应的处理程序,并调用其中的get()操作。

返回值:返回相应的get()的操作结果。


12.generic_listxattr()

函数原型:


ssize_tgeneric_listxattr(structdentry *dentry, char *buffer,

size_tbuffer_size);


函数参数:dentry指向目标文件对应的目录项;buffer指向用于存放扩展属性值的缓冲区;buffer_size表示缓冲区的长度。

函数功能:调用目标文件所在文件系统中所有支持的处理程序中的list()函数,并组合这些函数的执行结果。

返回值:如果缓冲区为空,则返回所有的扩展属性组成的结果的长度;反之返回获取的扩展属性列表的长度。


13.generic_setxattr()

函数原型:


int generic_setxattr(structdentry *dentry, const char *name, const void *value, size_t size, int flags);


函数参数:dentry表示目标文件对应的目录项;name表示待操作扩展属性的名字;value表示扩展属性的值;size表示扩展属性值的长度;flags表示相应的操作标志。

函数功能:根据扩展属性所在的命名空间查找相应的处理程序,并调用其中的set()操作。

返回值:返回相应的set()的操作结果。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部