我正在运行一个过程,该过程正在创建文件并使用该文件。该过程结束后,我正在删除该文件。

如果有一些例外,则如何知道该文件是由进程释放的,如果该文件被过程锁定,则如何删除该文件。

谢谢你的帮助 :)

有帮助吗?

解决方案

在Windows上,当过程结束时,OS返回该过程自动拥有的所有资源。故事结局。

例如,假设您在两个过程中的每个过程中都进行了“ CreateFileMapping()”以共享一个内存段。当第一个过程退出时,Windows会减少使用计数器,并且只有存活过程仍然可以使用对象。当第二个进程执行“ closehandle()”(或本身退出)时,计数器将减小为零,并且对象被完全释放。

换句话说,Windows不再使用时会回收资源,无论该过程是否在自己之后优雅地清理。

不,即使您打开一个用于独家访问的文件,一旦关闭文件句柄,该文件本身也不会“锁定”(并且在程序终止时,Windows将自动关闭它)。

其他提示

当您的程序结束时(无论是什么含义),如果文件仍然存在,则该过程将不再被该过程锁定...因为该过程不存在。

但是我不得不想知道;如果该文件最终仅被删除,您是否真的需要创建一个 文件 首先?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top