<分区>
这或多或少是一个关于方法论和基本原理的问题。在为 Linux 编写各种内核模块时,我对我认为是笨拙的函数设计方式感到困惑。例如,要在给定路径的情况下检索文件的 inode ,我必须使用如下内容:
struct inode *inode;
struct path path;
kern_path(path_name, LOOKUP_FOLLOW, &path);
inode = path.dentry->d_inode;
为什么不只是一个像这样工作的函数:
struct inode inode;
struct path path = kern_path(path_name, LOOKUP_FOLLOW);
inode = path.dentry->d_inode;
看起来更直观。