我正在尝试使用QProcess获取内存,我正在使用RedHat 7.3,如果我打开一个终端并输入free,这就给了我:
total used free shared buff/cache available
Mem: 7865728 1602988 3984928 297040 2277812 5552268
Swap: 8126460 0 8126460
我试图在QT中生成相同的内容:
QProcess p;
p.start("free");
p.waitForFinished();
QString strMemory = p.readAllStandardOutput();
qDebug() << strMemory;
p.close();
然而,这不起作用,我的应用程序挂起,我也尝试过:
sh free
没有更好的。
答案 0 :(得分:0)
尝试这样的事情:
const QString command { "free" };
QProcess p {};
p.start( command );
if ( !p.waitForFinished( -1 ) )
{
qWarning() << "Error:" << p.readAllStandardError();
return;
}
const auto& output = p.readAllStandardOutput();
qDebug() << "Output:" << output;
答案 1 :(得分:0)
经过多次游戏,我发现启动子进程的工作在IDE之外,但不在其中。
答案 2 :(得分:-1)
您使用的是同步API错误。试试asynch:
GlobalClass().appDelegate