【发布时间】:2018-03-26 15:25:08
【问题描述】:
我想编写一个例程,它会自动更改我的机器学习参数并多次执行(机器学习)代码并将其结果保存到文本文件中。
机器学习代码从 Ubuntu 终端运行,其结果也写入 Ubuntu 终端。
我需要一种从 C++ 代码读取数据并将数据写入 Ubuntu 终端的方法。
到目前为止我发现的是 QProcess:
QProcess process;
process.start("gnome-terminal"); //THE TERMINAL IS OPENED INDEED
char w[] = "write";
process.write(w,sizeof(w));
process.waitForFinished();
但没有写入或读取任何内容
起作用的是:
QProcess process1;
QProcess process2;
process1.setStandardOutputProcess(&process2);
process1.start("echo 0534230313");
process2.start("sudo -S poweroff");
process2.setProcessChannelMode(QProcess::ForwardedChannels);
这也有效:
int result = system("echo 0534230313 | sudo -S poweroff"); ///COMMANDS TO TERMINAL
int result2 = system("gnome-terminal"); ///OPEN TERMINAL
但问题是我无法读取输出结果(我的机器学习程序可以自行打开并写入终端)
【问题讨论】:
-
这里为什么会涉及到 gnome-terminal?