在C中执行程序,不要等待它完成

时间:2016-03-31 17:49:51

标签: c windows

我想在Windows上用C调用程序并立即关闭主程序。我尝试过像这样使用system()

system("SecondaryProgram.exe");
return 0;

但是“来电者”程序总是等待SecondaryProgram.exe完成。我想避免这种情况,并在“被叫”程序关闭之前立即返回0,比如在“另一个线程”中打开它。还有其他功能吗?

3 个答案:

答案 0 :(得分:0)

使用 CreateProcess ()API。当它成功启动另一个进程时,它将返回一个句柄,您可以根据需要使用该句柄等待进程完成或不完成。

答案 1 :(得分:0)

通常,Windows编译器支持execXXXspawnXXX函数。所以这样的事情应该有效:

#include <process.h>
...
spawnl(P_NOWAIT, "prog.exe", "prog.exe", NULL);
exit(0);

答案 2 :(得分:0)

system("cmd.exe /C SecondaryProgram.exe");

但是你可能会有一个DOS框,直到SecondaryProgram结束。