我正在尝试在 Qt 中将外部可执行文件(下面的代码)作为单独的进程运行。
测试.c:
#include <stdio.h>
int main () {
FILE *f;
f = fopen("a.txt", "w");
fprintf(f, "1\n");
fclose(f);
return 1;
}
在 Qt 中我有:
QProcess* process = new QProcess();
QString program = "/Users/myUser/Desktop/a.out";
process->execute(program);
我已经阅读了 execute()、start() 和 startDetached() 之间的区别,据我了解,我想使用 execute(),因为我希望运行外部可执行文件的进程在继续执行之前完成主要过程。但是,我已经尝试了所有三个,希望找到一个包含文本“1”的文件 a.txt,但它不存在。关于为什么它不起作用的任何帮助或建议?谢谢!
最佳答案
在 main() 函数中检查 a.txt 文件是否确实存在并在写入之前打开。
在 Qt 中检查“程序”文件是否确实存在,然后再执行它。
从 main() 函数返回不同的结果代码并在 Qt 中检查结果:
QProcess *proc = new QProcess();
proc->start(program);
proc->waitForFinished();
QString result=proc->readAllStandardOutput();
// Check result here
关于c++ - 使用 QProcess 在 Qt 中运行外部可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174173/