gpt4 book ai didi

c++ - 如何启动一个进程并使其成为 'independent'

转载 作者:IT老高 更新时间:2023-10-28 23:18:28 32 4
gpt4 key购买 nike

假设我已经掌握了这两个事实:-

CreateProcess() 启动一个进程并让您的程序在它运行时继续运行,但是当您的程序完成时,子进程会随之关闭。此外,您的程序必须注意子进程何时退出,以便它可以正确释放进程句柄。

system() 启动一个进程,等待它完成然后继续你的程序。

  • 我需要知道的是如何启动一个进程并让它独立于我的程序运行,并在我的程序退出后继续存在。我不需要捕获它的输出或对其进行任何进一步的控制,我只想让用户与之交互 - 比如我想写一个替代开始菜单运行命令的方法。

请问,真的可以这样做吗?

最佳答案

CreateProcess() 默认不等待子进程完成,立即返回。如果要等待,请使用 WaitForSingleObject。不,当父进程退出时,子进程不会自动终止,并且句柄无论如何都会被操作系统自动释放,所以不需要自己做(如果你使用现代版本的 windows)。

就像任何操作系统资源(gdi 对象、用户对象、内核对象)一样,如果您不自己销毁/释放/关闭资源,那么您将在应用程序运行时发生资源泄漏。您应该在 CreateProcess 返回后立即关闭从 CreateProcess 返回的两个句柄。

关于c++ - 如何启动一个进程并使其成为 'independent',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818795/

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