我使用QProcess对几个主机运行ping。当我将QProcess与命令"ping -c 1 -W 1主机名“一起使用时,无论ping成功与否,返回的退出代码总是为0。我已经测试了终端中脱机的主机,并且退出代码和预期的一样。假设主机名是脱机的实际主机。这是包含QProcess的代码片段:
QProcess *process = new QProcess(this);
QString cmd("ping -c 1- W 1 hostname");
process->start(cmd);
std::cout << process->exitCode() << std::endl;发布于 2017-07-06 01:39:40
返回已完成的最后一个进程的退出代码。
因此,您需要等待进程(QProcess::waitForFinished)退出,然后再检查其退出代码。
示例:
if ( !process->waitForFinished( -1 ) )
{
qWarning() << "Error:" << process->errorString();
return;
}
qDebug() << "Exit code:" << process->exitCode();https://stackoverflow.com/questions/44938372
复制相似问题