Qt QProcess获取内存信息

时间:2017-07-03 15:20:59

标签: c++ qt qprocess

我正在尝试使用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

没有更好的。

3 个答案:

答案 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