gpt4 book ai didi

c++ - 我怎么知道 QProcess 什么时候想要读取输入?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:20:14 27 4
gpt4 key购买 nike

我正在我的编译器类中实现一个编译器,我正在使用 Qt 和 C++。

从源代码生成机器代码后,我正在执行将执行代码的虚拟机。

我在这里面临一个问题,我正在使用readyRead() 信号从虚拟机获取输出,但是我怎么知道虚拟机要从用户那里读取数据?

我想在每次机器要求输入时向用户显示一个输入对话框。

最佳答案

实际上,流程的输入流的设计方式不一定是真实的用户输入。例如,如果您将文件重定向到应用程序的输入,则没有人要求输入的下一部分。在这种情况下,当您调用 std::cin >> a 时,应用程序或操作系统不会生成任何信号,QProcess 也无法知道子应用程序正在等待输入。

我的建议是使用一些简单的 IPC,如匿名管道,将此类事件通知父进程。如果可能,您可以在子进程标准输出中使用一些特定标记来发送此类通知。

如果您正在运行的虚拟机是第三方应用程序,那么我认为解析其输出以搜索通知用户需要某些输入的信息是唯一的选择。

关于c++ - 我怎么知道 QProcess 什么时候想要读取输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2794057/

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