没有open方法的设备驱动

Device driver without open method

我想知道设备驱动程序的开放发布方法是否是强制性的。 open 做的唯一工作是分配结构并将它们放入文件->priv_data,以便其他方法可以访问。

所以如果我有所有静态分配并且不关心卸载时发生的事情,我的 "question" 可能吗?用户 space 打开后会发生什么……我还会得到文件描述符吗?并能够读写设备文件(读、写方法已实现)。

可能是 open 所做的唯一工作 在您看到的示例中,是否可能。这取决于驱动程序到驱动程序,对于对 open/release 没有特殊要求的简单驱动程序(我想我们正在谈论字符设备)有内部 linux 助手。

当然,您的建议是可行的,但是 ... 请记住,使用静态声明是一个非常糟糕的设计思想,除非它是您真正想要的(通常不是)。例如,使用静态分配,设备驱动程序的多个实例将共享相同的数据。