【发布时间】:2023-03-08 11:57:02
【问题描述】:
我有一个 win32 应用程序,我正在为一些文件传输启动一个 robocopy 子进程。如果我使用 TerminateProcess 终止进程,是否有可能以损坏的文件结束?如果可以,如何避免?
【问题讨论】:
-
你试过了吗?您可以设置一个复制非常大的文件的测试,然后练习几次杀死 robocopy,看看结果如何。这可能不能证明它是安全的,但它可以很容易地证明它是否不安全。
-
有几种方法可以结束进程,
TerminateProcess应该是最后的努力。 -
一旦您将文件复制到外部进程,就没有安全的方法来终止该进程。您是否因文件系统损坏而告终,很大程度上取决于所涉及的文件系统。如果您想安全地取消复制,请实施复制并使其可取消。