c - 指定的初始化器后跟函数名

标签 c struct kernel-module

这是如何工作的,给定一个函数头,

ssize_t memory_read(struct file *filp, char *buf, size_t count, loff_t *f_pos);

在结构中使用了一个指定的标识符,在这种情况下读取后跟函数名称,我理解这与 .read = memory_read 相同。但是我不确定它的目的。这是否提供了在代码其他地方调用 memory_read 函数的方法?

struct file_operations memory_fops = {
  read: memory_read,
  write: memory_write,
  open: memory_open,
  release: memory_release
};

最佳答案

是的,这个结构包含一组函数指针,将在程序的其他地方使用。寻找类似的东西:

memory_fops.read(......)

等等。

关于c - 指定的初始化器后跟函数名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29738324/

相关文章:

C 整数/ float 组奇怪的行为

c - C中的结构数组初始化

struct - 如何在 F# 中为结构体定义一个 ctor,进而调用该结构体的默认 ctor

c - 如何从 Linux 内核空间模块执行/调用用户空间定义的函数?

c - getpriority() 和 sched_priority 的区别

c - 为什么我不能设置大于 2^32 的 time_t?

c - 使用 calloc 释放内存并更改标准输出时检测到堆损坏

c - 在 C 中打印一个带有两位小数但没有尾随零的 float

从 .h 文件调用函数

c - Linux 字符设备模块 : Why do we need both *owner and MOD_INC_USE_COUNT?