在我的QT小部件应用程序中,我试图运行一个打开C程序的shellcript,并为程序提供输入 . 该程序启动一个命令提示符,要求用户输入启动 . 程序启动后,程序的输出将通过标准输出重定向到文本文件 . 我试图使用QProcess打开并运行此shellcript,然后读取用于将C程序的结果打印到文本文件的标准输出 . shell脚本只运行此进程,不会终止它 . 这是因为我需要在程序运行时不断将此输出读入GUI . 等到程序完成后才能阅读这些信息是不够的 . 我是QT和C编程的新手 . 我希望有人能帮助我实现这个目标 .
QProcess process;
process.start("/home/pi/Desktop/ShellScripts/RunTutorial3.sh");
QString output =process.readAllStandardOutput();
qDebug() << output;
QString err = process.readAllStandardError();
qDebug() << err;
我已尝试使用其他读取功能,如readline,并尝试将过程作为一个分离过程启动 . 我的任何实验都没有成功 . 是否有可能做我在QT尝试的事情 . 我只需要程序连续运行并让QT经常读取此输出 .
Shell脚本:
#!/bin/bash
cd
cd Desktop
cd tutorial3App
cd bin
echo "start" | ./tutorial3
C代码:我需要在标准输出中捕获meanTOE值以在我的GUI中使用 .
/ Calculate average time to end of discharge
double meanToE = std::accumulate(ToESamples.begin(), ToESamples.end(), 0.0)/ToESamples.size();
file << ": EOL in " << meanToE << " s" << std::endl;