QT C++ 上的 QProcess 备份数据库

QProcess Backup Database on QT C++

我想在QT程序中用qprocess备份我的数据库,代码如下,但是备份的时候出现0kb,看报错Qprocess: Destroyed while process("mysqldump.exe")仍在运行。

QProcess dump(this);
QStringlist args;
QString path="C:/Users/mahmut/Desktop/dbbackupfile/deneme.sql";
args<<"-uroot"<<"-proot"<<"kopuz"<<">";
dump.setStandardOutputFile(path);
dump.start("mysqldump.exe",args);

if(!dump.waitForStarted(1000))
{
qDebug()<<dump.errorString();
}

你能帮帮我吗?我不明白这个错误并确定备份文件。

您的程序在进程完成之前终止,您需要使用 static bool QProcess::startDetached(program, arguments, workingDirectory) 或在末尾添加 dump.waitForFinished();

此外,您不需要在参数中添加“>”。您已经使用 dump.setStandardOutputFile(path) 重定向了输出,“>”不适用于进程,因为它需要 shell 来执行命令,QProcess 不使用 shell 它只运行一个进程而不是shell表达式。