我试图在Qt中运行外部可执行文件(下面的代码)作为一个单独的进程。
test.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(),因为我希望在继续运行外部可执行文件的过程之前完成在主要过程中执行。但是我已经尝试过三个人都希望找到一个包含文本&#34; 1&#34;的文件a.txt。在其中,但它并不存在。关于它为什么不起作用的任何帮助或建议?谢谢!
答案 0 :(得分:2)
签入main()-function,确认a.txt文件确实存在并在写入之前打开。
在Qt中检查&#34;程序&#34; -file在执行之前确实存在。
从main()函数返回不同的结果代码,并在Qt中检查结果:
QProcess *proc = new QProcess();
proc->start(program);
proc->waitForFinished();
QString result=proc->readAllStandardOutput();
// Check result here