2
我想監視如何使用RAM內存可能會Qt應用程序;所以,我想了一些要放在代碼中的東西。 我試過如下:如何正確管理一個只有一個參數的QProcess
QProcess p;
p.start("ps -A");
p.waitForFinished();
QByteArray RamMem =p.readAllStandardOutput();
p.close();
quint16 pidcounter = 0;
QString pidString(RamMem);
QStringList RamMemSplit = pidString.split('\n');
quint16 RamMemSplitcounter = RamMemSplit.count();
while(pidcounter< RamMemSplitcounter)
{
if (RamMemSplit[pidcounter].contains(MyApp))
{
splitsplit = RamMemSplit[pidcounter].split(" ");
qDebug() << "Process:"<< splitsplit[10]<< "pid:"<< splitsplit[0];
}
pidcounter++;
}
這樣,我救運行關聯到它的PID進程的名稱;現在,我想申請另一個進程(「pmax -x mypid),所以我可以獲得我的應用程序的RAM數量: 我該如何執行此操作?我讀取QProcess需要QStringList參數;在我的情況下,我只有一個作爲參數使用參數,它是沒有那麼清楚如何正確設置tyhe QProcess中以下是我的想法,連接到前面部分:
QStringList listprova(splitsplit[0]);
QProcess pr;
pr.start("pmap -x", listprova);
pr.waitForFinished();
QByteArray pmapResult = pr.readAllStandardOutput();
pr.close();
QString pmapString(pmapResult);
QStringList pmapSplit = pmapString.split('\n');
quint8 pmapCounter = pmapSplit.count();
qDebug() << pmapSplit[pmapCounter]; // last line of "pmap -x [pid]" console command
確切地說我是怎麼找的,它運行的很好,問題解決了 – LittleSaints
@LittleSaints:你應該把答案標記爲'接受'。 –