我想用QT程序中的qprocess备份我的数据库,代码如下所示,但是在备份和查看错误Qprocess时,0kb会发生:销毁的进程(“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();
}
你能帮我吗?ı不明白这个错误和okb备份文件。
发布于 2022-03-16 09:52:39
您的程序在进程完成之前终止,您需要使用static bool QProcess::startDetached(program, arguments, workingDirectory)
或将dump.waitForFinished();
添加到末尾。
此外,您也不需要在参数中添加">“。您已经用dump.setStandardOutputFile(path)
重定向了输出,">“不适用于进程,因为它需要shell来执行命令,QProcess
不使用shell --它只是运行一个进程而不是shell表达式。
https://stackoverflow.com/questions/71492830
复制相似问题