首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >即使使用FILE_FLAG_DELETE_ON_CLOSE属性创建的文件也会保留在磁盘上

即使使用FILE_FLAG_DELETE_ON_CLOSE属性创建的文件也会保留在磁盘上
EN

Stack Overflow用户
提问于 2020-05-27 19:43:17
回答 1查看 161关注 0票数 1

我有一个创建FILE_FLAG_DELETE_ON_CLOSE属性文件的程序。我在一些机器上看到很少的情况,即使进程停止,文件也在那里。

代码语言:javascript
运行
复制
CreateFile(fileName,
        GENERIC_READ,
        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
        NULL,
        OPEN_ALWAYS,
        FILE_FLAG_DELETE_ON_CLOSE,
        NULL);

注意:我确信100%没有其他进程持有这些文件的句柄。此外,所有句柄(OpenFile、CreateFile)都是使用FILE_FLAG_DELETE_ON_CLOSE属性创建的。

我正在尝试寻找边缘情况,即保证文件将在其所有句柄关闭后立即删除,是不起作用的。(除了意外关闭操作系统)有人知道其他情况下文件可以留在磁盘上吗?

EN

Stack Overflow用户

发布于 2020-05-28 02:56:15

正如注释所述,最有可能的情况是文件上的句柄仍处于打开状态。然而,这并不是它仍然存在的唯一原因。

您可能有一个名为WriteFile的程序,但它已被强制终止(因此句柄已关闭),并且一个挂起的IRP保存着该文件。此IRP将不允许释放该文件,直到它在内核中的引用计数达到0。由于IRP仍处于挂起状态,因此它是非零的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62042293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档