我有一个win32应用程序,我正在启动一些文件传输的robocopy子进程。如果我使用TerminateProcess终止进程,是否有可能以损坏的文件结束?如果是,如何避免这种情况?
来自TerminateProcess函数,
TerminateProcess函数用于无条件地导致进程退出。动态链接维护的全局数据的状态如果使用TerminateProcess,库(DLL(可能会受到损害而不是ExitProcess。
请记住,TerminateProcess
不允许其目标在有效状态下清理和退出。
尝试干净地关闭流程,请参阅下面的链接,
- 如何终止应用程序";Cleanly";在Win32中
如果自动复制过程终止,被复制的文件将具有与原始文件相同大小的时间戳(a(1980-01-01(b(。
然后再次使用robocopy在命令行中复制带有TimeStamp的文件。
参考:如何使用Robocopy在命令行中使用TimeStamp复制文件