我使用QProcess
来运行另一个程序。命令为airodump-ng mon0
。
它的输出随时都在变化,并且完全不同(也不像ping命令,由行更改)。我希望使用QProcess
来运行该程序,并在它仍在运行时获取其输出。
pushButton_clicked()
{
myprocess = new QProcess(this);
connect(myprocess,SIGNAL(readReadStandardOutput()),this,SLOT(outlog()));
myprocess->start("sudo -A ./airodump-ng mon0");
}
outlog()
{
QString abc = myprocess->readAllStandardOutput();
textEdit->setText(abc);
}
在程序airodump-ng
中,我已添加代码setvbuf(stdout,(char*)NULL,_IONBF,0);
以使用行缓冲。