c - 我们可以在内核中打开文件之前检查文件的读写权限吗
问题描述
我想在内核中以只读模式打开一个文件,但在我这样做之前我想检查该文件是否具有读取权限,我该如何检查它?因为甚至要检查我是否需要一个指向输入文件的文件指针。
filp_open(args->inputfile, O_RDONLY, 0);
有什么方法可以在打开之前检查它吗?我尝试使用,但总是失败
if (!fileptr->f_op->read)
{
error = -EACCES;
printk("reading input file failed\n");
}
解决方案
您应该使用access(char *filepath,int mode)
它检查文件访问权限。
mode
描述您要检查的内容:F_OK(存在),或 R_OK(读取)、W_OK(写入)或 X_OK(执行)的 OR 组合。
因此,对于您的问题,您可以使用:
#include <unistd.h>
...
if( access( filename, R_OK ) != -1 ) {
// can read file
} else {
// cannot read file
}
推荐阅读
- spring - Vue js axios 请求 Spring Boot API 身份验证
- elasticsearch - 将嵌套的数据存储在 Elastic Search 中以便在 Kibana 中进行分析是否更好?
- spring - Spring Data Redis 事务支持
- html - Bootstrap 将表单修复到页面底部
- azure - 数据工厂自托管集成运行时非活动节点
- javascript - ADF数据警告回答后如何强制回滚
- selenium-webdriver - Robot 中的 if 语句
- asp.net-core - 带有登录的 JMteter 线程组运行一次并使用 AccessToken 运行具有更多用户/线程的其他 HTTP 请求
- r - 根据列的唯一值从一个数据框创建数据框列表
- string - 从字符串中删除“k”个连续相同的字符,直到字符串没有任何连续的字符