QProcess输出大数据

时间:2017-10-03 16:28:53

标签: c++ qt5 stdout qprocess

我需要在QT内部压缩一个非常大的文件(最多 13GB ),同时不会溢出内存并使用 QProcess 正确获取zip的输出。这是我得到的代码:

void zipFile(QString filename, QStringList files)
{
    QProcess process; 
    process.setStandardOutputFile(filename);
    process.setProgram("zip");
    process.setArguments(QStringList() << "-jr" << "-" << files);
    process.start(QProcess::ReadWrite | QProcess::Unbuffered);

    if (process.waitForStarted()) {
        process.waitForFinished(); /* Timeout here */

        if (process.exitStatus() != QProcess::NormalExit) {
            /* Deal with the error */
            return;
        }
    } else {
        /* Deal with the error */
    }
}

但问题是 waitForFinished 函数超时并且我的进程退出时出现问题,我不想删除超时。使用 QProcess

有更好的方法

0 个答案:

没有答案