试图理解linux驱动程序中的一个简单的open()

时间:2014-10-14 10:59:45

标签: c linux-device-driver

在简单的Linux设备驱动程序代码中,我找到了以下功能:

static int my_open(struct inode *i, struct file *f)   
{
  printk(KERN_INFO "Driver: open()\n");
  return 0;
}

这取自here

有人可以在inode解释我这是什么意思吗?为什么这个函数static

1 个答案:

答案 0 :(得分:1)

该函数是static,因为编写器不希望从驱动程序代码外部看到该函数,即您无法直接链接它。它很可能通过一些init()函数暴露出来,它将函数指针放在一个“方法”表中,如果我还记得Linux驱动程序的外观。

struct inode值描述磁盘上的文件或目录。