linux系统QT环境下使用命令行,执行命令,读取信息。
问题:linux系统很多操作需要用到命令行,输入命令和观察反馈来判断系统状态。那么使用QT能否自动完成这个功能呢?
需求:使用“lspci”查看PCIE设备。如果有设备就返回设备号。如果没有,就没有返回。
//头文件
#include <QApplication>
#include <QProcess>
//如果不需要返回,只执行命令
QProcess::execute(QString("lspci"));
//源文件
process.start("lspci");//输入命令
process.waitForFinished();//执行命令
QByteArray output = process.readAllStandardOutput();//读取返回//判断读取信息
if((QString::compare(output,"01:00.0 Ethernet controller: Device 8088:0107 (rev 01)")) == 0)
{
qWarning()<<"找到PCIE设备";qWarning()<<output;//打印出读取的信息
}
else
{
QProcess::execute(QString("reboot"));//如果读不到设备,就重启。
}