【发布时间】:2019-03-09 00:10:06
【问题描述】:
我想在内核中以只读模式打开一个文件,但在此之前我想检查该文件是否具有读取权限,我该如何检查它?因为要检查我是否需要一个指向输入文件的文件指针。
filp_open(args->inputfile, O_RDONLY, 0);
有什么方法可以在打开之前检查它吗?我尝试使用,但总是失败
if (!fileptr->f_op->read)
{
error = -EACCES;
printk("reading input file failed\n");
}
【问题讨论】:
-
问题是在检查权限和打开之间存在竞争条件,其中所述权限可以被其他东西更改。只需尝试打开它并适当地处理故障。
-
有趣的是,accepted 答案中的 user-space 代码如何适用于 kernel-space代码...
标签: c linux file permissions kernel