我需要將某些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