0

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

如果在两者之间出现一些异常,那么如何知道文件是否被进程释放以及如果它被进程锁定如何删除它。

谢谢你的帮助 :)

4

2 回答 2

1

在 Windows 上,当进程结束时,操作系统会自动返回该进程拥有的所有资源。故事结局。

例如,假设您对两个进程中的每一个都执行了“CreateFileMapping()”来共享一个内存段。当第一个进程退出时,Windows 会递减使用计数器,只有幸存的进程仍然可以使用该对象。当第二个进程执行“CloseHandle()”(或自身退出)时,计数器减至零,对象被完全释放。

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

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

于 2010-12-04T07:14:34.347 回答
0

当您的程序结束时 - 无论以何种方式结束 - 该文件(如果仍然存在)将不再被进程锁定......因为该进程不存在。

但我不得不怀疑;如果文件最后只是被删除,你真的需要首先创建一个文件吗?

于 2010-12-04T07:12:46.130 回答