微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

检查文件是否被进程文件句柄locking

鉴于我有所有进程的所有文件句柄的列表,我怎么能找出哪些句柄实际上locking文件

从我的理解我可以简单地尝试打开文件,并尝试获得所有权限,如果出现错误,我会知道它被locking。 但是这听起来效率很低。 我的意思是我已经有句柄是没有办法检查手柄有哪些权限?

最好我想看到一个解决scheme,在Windows XP及以上的作品。

我已经通过GetFile@R_722_4045@ionByHandleEx函数进行search,但找不到任何有关访问权限的信息。 :/

在Windows上确定打开的文件句柄模式

列出当前打开的文件句柄?

WIndows:subprocess制作新的控制台窗口,丢失stdin / out

处理结束后`/ dev / ttyS *`上的QSerialPort效应?

在Windows中从文件句柄获取文件path

编辑:我不需要关于文件locking的实时信息。 我计划处理的文件将被locking,直到某些应用程序被closures或根本不被locking。

为什么打开的DLL句柄不能保护文件不被移动?

Linux可以在打开的文件句柄上使用inotify吗?

当进程被终止时,放弃打开的文件

如何从Windows中使用C的文件句柄获取文件名称

程序文件句柄

这个问题是锁定阅读的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] 举报,一经查实,本站将立刻删除。

相关推荐