我正在使用QProcess对几台主机运行ping。当我使用带有命令的QProcess作为“ping -c 1 -W 1 hostname”时,无论ping是否成功,返回的退出代码始终为0。我测试了终端中脱机的主机,退出代码是预期的。假设hostname是脱机的实际主机。 这是包含QProcess的代码片段:
QProcess *process = new QProcess(this);
QString cmd("ping -c 1- W 1 hostname");
process->start(cmd);
std::cout << process->exitCode() << std::endl;
答案 0 :(得分:1)
返回已完成的 last 进程的退出代码。
因此,您需要等待进程(QProcess::waitForFinished
)退出,然后再检查其退出代码。
示例:强>
if ( !process->waitForFinished( -1 ) )
{
qWarning() << "Error:" << process->errorString();
return;
}
qDebug() << "Exit code:" << process->exitCode();