使用QProcess读取系统指令的返回的系统信息

使用QProcess读取系统指令的返回的系统信息

我们可以使用QProcess的部分接口来读取系统的返回值。
需要用到的接口为readAllStandardOutput(),读取QProcess指令start()的返回值。
如下:

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    m_process = new QProcess(this);
    connect(m_process,SIGNAL(finished(int,QProcess::ExitStatus)),this,SLOT(slotreadbuff(int,QProcess::ExitStatus)));
}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_lsbtn_clicked()
{
    QString cmd = "lscpu";
    m_process->start(cmd);
    m_process->waitForFinished(); // 阻塞进程完成后返回,默认等待时间30s
    qDebug()<<cmd<<m_result;
}

void MainWindow::on_ifconfigbtn_clicked()
{
    QString cmd = "ifconfig";
    m_process->start(cmd);
    m_process->waitForFinished();
    qDebug()<<cmd<<m_result;
}

void MainWindow::slotreadbuff(int index,QProcess::ExitStatus exitstatus)
{
    m_result = m_process->readAllStandardOutput();   //读取进程通道的返回值。
}

版权声明:本文为weixin_43246170原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。