我读过的地方是,两次打开相同的文件有一个未定义的语义,应该避免。在我的情况下,我想多次打开我自己的设备,将多个文件描述符关联到它。我的设备的文件操作都是安全的。在sys调用open()和它调用注册文件操作.open()这个不安全的地方之间是否存在Linux的某些部分?我可以在Linux下的用户程序中同时打开两次自己的设备驱动程序吗?
2
A
回答
3
只要您的驱动程序可以,打开相同的设备文件两次是完全正常的。 没有任何隐藏的部分,如果它在内核中是安全的,将会使其不安全。
例如,一些视频应用程序中使用一个过程中做的显示或捕获,而另一个打开设备文件来处理的控制。
如果驱动程序不支持多个打开的,那么就应该在第二个开放恰好返回一个错误。
1
如果驱动程序允许您这样做,您可以在同一过程中两次打开设备。同步是驱动程序的责任。
但是,如果您要打开,也就是说,一个原始磁盘设备作为特权用户,你会想要确保你不会在你的进程揍你自己的数据。
1
两次打开相同的文件在有意义的情况下具有明确定义的语义。如果他们都在读/写,进程仍然需要某种形式的同步,否则该文件可能最终会充满垃圾。
对于设备驱动程序,多的语义可能会出现完全由司机 - 一些司机禁止它,在其他正常工作(认为的/ dev/null的为例)。在某些驱动程序中它有一个非常特殊的含义(例如,声卡可能会混合多个应用程序之间的声音输出)
相关问题
- 1. Linux设备驱动程序
- 2. 简单的linux设备驱动程序打开调用崩溃
- 3. Linux /内核模块:两个用户程序可以使用驱动程序吗?
- 4. 可以阻止设备驱动程序成为字符设备驱动程序
- 5. Linux设备驱动程序使用的次要号码
- 6. 我们可以一次打开两个DB提供程序吗?
- 7. Linux中的设备驱动程序开发
- 8. linux中的C++设备驱动程序开发
- 9. IOCTL Linux设备驱动程序
- 10. Linux网络设备驱动程序
- 11. 我可以从我的应用程序打开设置应用程序吗?
- 12. 当Android设备打开时,是否可以安装HAL驱动程序?
- 13. Linux中设备驱动程序检测的过程
- 14. 如何使用android/linux电源驱动程序注册设备驱动程序?
- 15. 在更新的应用程序第一次打开之前,可以打开应用程序扩展程序吗?
- 16. 设备驱动程序开发
- 17. linux设备驱动程序库不可用
- 18. Linux设备驱动程序 - 我的device_read()有什么问题?
- 19. Wince设备驱动程序
- 20. 有人可以帮我替换块设备驱动程序上的“lock_kernel”吗?
- 21. Linux设备驱动程序:将标志传递给驱动程序
- 22. Windows驱动程序 - 无法正确签署我自己的驱动程序
- 23. 如何端口上的Android模拟器我自己的设备驱动程序
- 24. 嵌入式Linux和设备驱动程序开发
- 25. 设备驱动程序开发中的工作流程?
- 26. 使用驱动程序内部的驱动程序的Linux
- 27. 如何启动linux系统和设备驱动程序编程
- 28. 只能使用其设备文件访问Linux中的设备驱动程序?
- 29. Linux的字符设备驱动程序:阻塞ioctl调用
- 30. 用于SMP系统的Linux设备驱动程序