c - 我在哪里可以获得 `struct file* file_open(const char* path, int flags, int rights)` 的手册页

标签 c linux linux-kernel linux-device-driver kernel-module

我正在尝试写一个 module读取文件(在内核模式下)。 但是,问题是内核版本 2.6.30 及之后,不导出 sys_read()

我已将代码更改为

  • struct file* file_open(const char* path, int flags, int rights) &
  • int file_read(struct file* file, unsigned long long offset, unsigned char* data, unsigned int size)

读取文件。

here我对 file_open() 中参数 int rights 的使用感到困惑(它是否与“open()”中的 mode 相同)。

请给我一个示例或帮助我获取 file_open() 的手册页。

最佳答案

是的,它们是一样的。

来自 rz2 man pages for FILP_OPEN ,

struct file * filp_open(const char * filename, int flags, int mode);

ARGUMENTS

  • filename: path to open .
  • flags: open flags as per the open(2) second argument.
  • mode: mode for the new file if O_CREAT is set, else ignored.

file_open 将其第三个参数 int rights 作为第三个参数传递给 filp_open,即 int mode

file_open 由您定义为底层 VFS 级函数 filp_open 的包装函数。因此,您不能指望在 file_open 上找到联机帮助页。

关于c - 我在哪里可以获得 `struct file* file_open(const char* path, int flags, int rights)` 的手册页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34327207/

相关文章:

c++ - 通过 OpenMPI 进行非阻塞数据共享

c - 我们可以使用 c 在 linux 中创建一个进程有多少种方法

linux - 在汇编程序中编写 linux 内核模块时的内存访问

c++ - 将内存池与需要对齐内存的 cpu 一起使用是个好主意吗?

c - 将函数返回值类型转换为指针类型

c - 无法从内核模块中的 net_device 获取 mac 地址

linux - 提取一个字符后的子字符串

linux - 如何从 Fortran 代码中删除文件?

c - Linux 内核的 free_list 如何初始化为指向空闲页面?

linux-kernel - 基于 x86 的系统的板文件