【发布时间】:2013-03-23 16:00:43
【问题描述】:
有哪些方法可以独占打开设备文件(例如,显示帧缓冲区)?
[信息:我已经知道flock() 和朋友,它们只有在其他应用程序也在使用它时才会起作用(换句话说:open() 会成功,但如果flock() 已经锁定,则会失败)- -> 但仍然可以使用从 open() 检索到的设备句柄来写入显示器..]
如果我想对设备文件强制执行此类独占访问,该怎么办?这样的执法怎么可能?
提前致谢!
【问题讨论】:
-
Google for
mandatory locking linux有很多问题... -
这里是 linux 中强制和咨询锁定的链接......thegeekstuff.com/2012/04/linux-file-locking-types
-
@KinjalPatel 只有在您使用
flock()时才有效,否则不会阻止写入。自动限制设备独占打开的唯一方法是让设备驱动程序自行执行open引用计数。 -
打开调制解调器的(的)第一个进程是否在此期间成为设备的所有者?如果是这样,您的第一个打开过程是否可以将调制解调器设备上的权限设置为 000,这样就没有人可以从那里打开它?当然,在打开设备和更改其模式之间存在竞争条件,但如果系统在进程完成时自动将所有权恢复回系统,它可能或多或少会产生正确的效果。具有足够权限的用户或同一用户的另一个进程也可以在打开权限之前使用权限。
-
如何为您的应用程序创建一个登录用户并将设备文件权限设置为只允许该用户读取/写入?