在Linux中独占打开设备文件

use*_*654 12 c linux posix flock

有哪些方法可用于专门打开设备文件(例如,显示帧缓冲区)?

[信息:我已经知道了flock()和朋友,只有在其他应用程序也在使用它时才会产生效果(换句话说:open()会成功但flock()如果已经锁定则会失败) - >但是仍然可以使用从open()检索到的设备句柄来写入显示...

当我想在设备文件上强制执行这种独占访问时,情况怎么样?如何实施这样的执法?

提前致谢!

oxu*_*xuf 5

来自fcntl(2):

要使用强制锁定,必须在包含要锁定的文件的文件系统和文件本身上启用强制锁定.

...还需要CONFIG_MANDATORY_FILE_LOCKING在内核中启用.

使用"-o mand"选项mount(8)或mount(2)的MS_MANDLOCK标志在文件系统上启用强制锁定.通过禁用文件的组执行权限并启用set-group-ID权限位(请参阅chmod(1)和chmod(2)),可以对文件启用强制锁定.

POSIX未指定强制锁定.其他一些系统也支持强制锁定,但是如何启用它的细节因系统而异.

因此,当您请求符合要求posix的解决方案时,答案是:,POSIX标准中没有这样的功能.


小智 -2

要打开设备,您应该在 Linux 中使用open 系统调用,并检查可用设备列表,例如 /dev/ttyUSB0 或 /dev/ttyS0 等,然后打开它,您将获得一个用于在设备上写入和读取的描述符:您打开一个设备进行通信。要了解更多详细信息,请点击链接: http://www.firmcodes.com/lower-level-file-handling-in-linux/