指定的初始化程序后跟函数名称

时间:2015-04-20 02:16:24

标签: 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
};

2 个答案:

答案 0 :(得分:2)

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

memory_fops.read(......)

等等。

答案 1 :(得分:0)

不应再使用版本“name:value”。这是一个gcc扩展,它已经过时,C99使用“.name = value”形式。如果这是Linux驱动程序的一个片段,您可能会坚持使用它,但是,如果样式指南要求它。否则我会将其更改为符合标准的版本。