簡體   English   中英

我們可以在內核中打開文件之前檢查文件的讀寫權限嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM