Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么是Qt';路';用于将外部可执行文件用作管道?_C++_Qt_Process_Pipe_Qt5 - Fatal编程技术网

C++ 什么是Qt';路';用于将外部可执行文件用作管道?

C++ 什么是Qt';路';用于将外部可执行文件用作管道?,c++,qt,process,pipe,qt5,C++,Qt,Process,Pipe,Qt5,我有一个使用Qt框架的GUI应用程序,另一个只处理stdin中的一些文本,并在stdout中显示其输出 如何可移植地使用来自Qt应用程序的第二个可执行文件? 主应用程序的用户将创建需要处理的数据。 (结果将显示回用户) 第二个应用程序不能知道/依赖主应用程序的任何内容,因此开发类似服务器的抽象是不可能的 我不想为此编写特定于Linux的代码,因为应用程序将来需要在其他平台上运行。您可以使用QProcess启动第二个应用程序,提供输入并读取其输出: QProcess process; proces

我有一个使用Qt框架的GUI应用程序,另一个只处理
stdin
中的一些文本,并在
stdout
中显示其输出

如何可移植地使用来自Qt应用程序的第二个可执行文件? 主应用程序的用户将创建需要处理的数据。 (结果将显示回用户)

第二个应用程序不能知道/依赖主应用程序的任何内容,因此开发类似服务器的抽象是不可能的


我不想为此编写特定于Linux的代码,因为应用程序将来需要在其他平台上运行。

您可以使用
QProcess
启动第二个应用程序,提供输入并读取其输出:

QProcess process;
process.start("secondApp");
process.waitForStarted();

process.write(input, count);
process.closeWriteChannel();

process.waitForFinished();
QByteArray output;
output = process.readAllStandardOutput();

它似乎可以工作,但在字符串结束后,进程不会返回。如何向其写入EOF?