2010-05-06 591 views

回答

3

只要您的驱动程序可以,打开相同的设备文件两次是完全正常的。 没有任何隐藏的部分,如果它在内核中是安全的,将会使其不安全。

例如,一些视频应用程序中使用一个过程中做的显示或捕获,而另一个打开设备文件来处理的控制。

如果驱动程序不支持多个打开的,那么就应该在第二个开放恰好返回一个错误。

1

如果驱动程序允许您这样做,您可以在同一过程中两次打开设备。同步是驱动程序的责任。

但是,如果您要打开,也就是说,一个原始磁盘设备作为特权用户,你会想要确保你不会在你的进程揍你自己的数据。

1

两次打开相同的文件在有意义的情况下具有明确定义的语义。如果他们都在读/写,进程仍然需要某种形式的同步,否则该文件可能最终会充满垃圾。

对于设备驱动程序,多的语义可能会出现完全由司机 - 一些司机禁止它,在其他正常工作(认为的/ dev/null的为例)。在某些驱动程序中它有一个非常特殊的含义(例如,声卡可能会混合多个应用程序之间的声音输出)

相关问题