我有问题,这是我的代码
QProcess *process = new QProcess(this);
process->setEnvironment(QProcess::systemEnvironment());
process->setStandardErrorFile(getAbsolutePath("logs")+"mylog.log",QIODevice::Append);
process->setProgram(program);
process->setArguments(arguments);
//loop is a QEventLoop
loop.connect(process, SIGNAL(finished(int, QProcess::ExitStatus)),
this, SLOT(finalProcess(int, QProcess::ExitStatus)));
process->start();
qDebug()<<process->program()<<process->arguments();
if(!process->waitForStarted(3600000)) {
myLog.addMessage(process->program()+" "+process->errorString());
}
loop.exec();
process->close();
delete process;
process = NULL;
这段代码是一个在循环中调用的函数,它只能运行n次(例如我需要做n = 100但代码在n = 17时崩溃),直到输出(process->errorString())
QProcess无法启动:文件名或扩展名太长。
然后我改变了其他更短的路径,我看到在崩溃之前n会更高,我做了更多QProcess但不是全部。
我不明白为什么我不能做任何无限的QProcess如果我想要的话,我总是等待我的每个QProcess与我的QEventLoop完成。 任何人都可以有解决方案吗?
非常感谢