我需要将某些linux命令的输入读取到QString变量。起初,我将流重定向到临时文件并从中读取。读取linux命令的输出而不使用临时文件
但是,我不喜欢这种方式。我想避免访问硬盘,越少越好。
我尝试使用环境变量作为“临时文件”,然后使用getenv
将其变为一个变量。
这样的:
QString query="a=$(fdisk -l)";
system(a.toStdString().c_str());
...
char* env;
env= getenv ("a");
不过,我什么也没得到。将export
添加到查询具有相同的结果。
我通过env
命令手动检查变量。没有改变!
那么如何解决这个问题呢?有没有更好的方法来做到这一点?
任何想法表示赞赏:)
PS:我想保持的格式也一样,它应该保持\t
,\n
...
您可能想了解['popen'](http://man7.org/linux/man-pages/man3/popen.3.html)。 – 2014-08-27 16:16:51
我建议你使用QProcess,而不是系统命令:http://qt-project.org/doc/qt-5/QProcess.html – TheDarkKnight 2014-08-27 16:17:00
谢谢你的建议,我正在阅读'popen'和'QProcess'。我不是一个懒惰的屁股,但它会很好,如果你们提供一些例子:) – Tiana987642 2014-08-27 16:25:16