gpt4 book ai didi

c++ - 创建进程并在进程返回消息后运行代码(C++)

转载 作者:行者123 更新时间:2023-11-28 08:16:50 27 4
gpt4 key购买 nike

我正在尝试用 C++ 创建一个新进程(不应阻塞当前程序),并让 C++ 监听消息。当消息到达时,我想运行更多代码。

我有这个方法可以执行命令并立即产生结果,但我不知道如何制作一个在进程返回消息时运行代码的方法:

    string exec(const char* cmd)
{
// popen for *nix
FILE* pipe = _popen(cmd, "r");

if (!pipe)
return "";

char buffer[128];
string result = "";

while(!feof(pipe)) {
if(fgets(buffer, 128, pipe) != NULL)
result += buffer;
}

// pclose for *nix
_pclose(pipe);

return result;
}

注意:进程返回消息可能需要 1-3 秒——之后进程将继续执行,因此上面的代码是不够的,因为执行的程序永远不会结束。

最佳答案

您可以将执行进程的代码放在单独的线程中,这样主线程可以继续执行,而辅助线程启动进程并等待来自子进程的消息。

关于c++ - 创建进程并在进程返回消息后运行代码(C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7454516/

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