【发布时间】:2019-03-08 12:04:25
【问题描述】:
如果我在linux内核中将权限声明为umode_t类型的变量模式,如何检查它是否具有读取或写入权限
例如 - 我将权限存储到 umode_t file_mode 中,现在如何在 linux 中以编程方式检查它是否具有读写权限
我尝试使用 filp->f_op->read,但即使文件具有读取权限,它也总是给我一个错误
umode_t input_file_mode;
filp = filp_open( args->inputfile,O_RDONLY,0 );
input_file_mode = filp->f_inode->i_mode;
if (!filp->f_op->read)
{
error = -EACCES;
printk("reading input file failed\n");
}
【问题讨论】:
-
请包含minimal reproducible example,或至少包含一些实际代码。到目前为止,您所显示的内容没有用。
-
添加它总是返回错误
-
你在测试read函数是否为null。
-
如何在内核中进行文件操作的简单答案是“不要”
-
是的,如果它为空,我想返回一个错误,但即使启用了读取操作,它也会抛出一个错误
标签: c linux permissions kernel