在伪代码中......
processHandle = _spawnl(_P_NOWAIT, "foo.exe", ...);
/* time passes... */
WossnameKillFunction(processHandle);
答案 0 :(得分:4)
VC ++函数_spawnl()
没有终止副本,但它确实返回了一个可以使用的Win32 HANDLE
:
HANDLE handle = (HANDLE)_spawnl(...);
TerminateProcess(handle, exit_code);
请注意,如果您使用其中一个HANDLE
args调用它,则只返回NOWAIT
。如果没有,它将返回进程的退出代码。
当然,如果你能以某种方式与进程通信它应该优雅地退出,那就更好了。 TerminateProcess
将阻止调用任何清理代码。
(并且作为一个小旁注:尽管MSDN说spawnl()
是一个不推荐使用的POSIX函数,但它实际上从未出现在任何POSIX标准中!据我所知它来自QNX。)
答案 1 :(得分:3)