我有一个设备驱动程序,我希望它只能由一个进程打开。我必须使用什么结构才能实际设置此属性?Freebsd操作系统、C语言、内核设备驱动程序有什么建议吗?
您可以在设备驱动程序中跟踪它;并拒绝打开。也就是说,做一些记账(is_open=打开时为true,is_open=关闭/丢失时为false)。
或者,您可以简单地使用open()本身的正常锁定语义——如果需要,可以与exclusive模式和/或fcntl/flock结合使用。