gpt4 book ai didi

c++ - 如何终止在 C/C++ Win32 程序中以 _spawnl() 启动的进程?

转载 作者:太空宇宙 更新时间:2023-11-04 05:30:46 24 4
gpt4 key购买 nike

在伪代码中...

processHandle = _spawnl(_P_NOWAIT, "foo.exe", ...);

/* time passes... */
WossnameKillFunction(processHandle);

最佳答案

没有与 VC++ 函数 _spawnl() 对应的终止函数,但它会返回一个您可以使用的 Win32 HANDLE:

HANDLE handle = (HANDLE)_spawnl(...);
TerminateProcess(handle, exit_code);

请注意,如果您使用 NOWAIT 参数之一调用它,它只会返回一个 HANDLE。如果没有,它将返回进程的退出代码。

当然,如果您能以某种方式告知进程它应该优雅地退出,那就更好了。 TerminateProcess 将阻止调用任何清理代码。

(作为一个小旁注:尽管 MSDN 说 spawnl() 是一个已弃用的 POSIX 函数,但它实际上从未出现在任何 POSIX 标准中!据我所知,它起源于 QNX .)

关于c++ - 如何终止在 C/C++ Win32 程序中以 _spawnl() 启动的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6578739/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com