鉴于我有所有进程的所有文件句柄的列表,我怎么能找出哪些句柄实际上locking文件?
从我的理解我可以简单地尝试打开文件,并尝试获得所有权限,如果出现错误,我会知道它被locking。 但是这听起来效率很低。 我的意思是我已经有句柄是没有办法检查手柄有哪些权限?
最好我想看到一个解决scheme,在Windows XP及以上的作品。
我已经通过GetFile@R_722_4045@ionByHandleEx函数进行search,但找不到任何有关访问权限的信息。 :/
在Windows上确定打开的文件句柄模式
列出当前打开的文件句柄?
WIndows:subprocess制作新的控制台窗口,丢失stdin / out
处理结束后`/ dev / ttyS *`上的QSerialPort效应?
编辑:我不需要关于文件locking的实时信息。 我计划处理的文件将被locking,直到某些应用程序被closures或根本不被locking。
为什么打开的DLL句柄不能保护文件不被移动?
Linux可以在打开的文件句柄上使用inotify吗?
当进程被终止时,放弃打开的文件
程序文件句柄
这个问题是锁定阅读的Win32文件的副本:如何找出谁锁定他们 。
Hans Passant的评论也是正确的:查询任何Win32文件的锁定状态都会提供一些陈旧的信息。 不理会这个警告会导致难以发现的错误。
如果您控制所有您认为可以访问这些文件的代码,最好使用命名管道进行进程间通信,而不是查询锁定的文件。
您可以使用NtQueryObject API来获取有关句柄的信息,包括以下内容:
ULONG Attributes; ACCESS_MASK GrantedAccess;
或者,您可以使用File@R_722_4045@ionClass参数的FileMode@R_722_4045@ion和FileAccess@R_722_4045@ion值使用NtQuery@R_722_4045@ionFile访问相同的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。