在Linux中独占打开一个设备文件

有什么方法可用,专门打开设备文件(比如显示帧缓冲区)?

[信息:我已经知道flock()和朋友,只有当其他应用程序也在使用它(换句话说,open()会成功,但flock()会失败,如果已经locking) – >但是仍然可以使用从open()中获取的设备句柄来写入显示..]

那么当我想对设备文件强制执行这种独占访问的情况呢? 这样的执法怎么可能呢?

提前致谢!

如果您想要获得设备的独占访问权限,请在/var/lock创建一个锁定文件。 可以通过open("my_device.lock", O_CREAT|O_EXCL, 0777)创建锁定文件的进程可以访问设备,其他进程必须等待。 使用设备完成该过程后,将删除该文件。

这种锁只是建议性的,并不能保证没有其他进程(你不知道)访问设备。

尝试lockf() :在打开的文件上应用,测试或移除POSIX锁

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