[英]can we check a file's read write permission before opening it in kernel
我想在內核中以只讀模式打開文件,但在執行此操作之前,我想檢查文件是否具有讀取權限,如何檢查它? 因為甚至要檢查我是否需要指向輸入文件的文件指針。
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(執行)的或組合。
因此,對於您的問題,您可以使用:
#include <unistd.h>
...
if( access( filename, R_OK ) != -1 ) {
// can read file
} else {
// cannot read file
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.