2016-03-31 52 views
-2

WindowsのC言語でプログラムを呼び出し、すぐにメインプログラムを終了したいと思います。私はこのようなsystem()使ってみた:Cでプログラムを実行し、終了を待たずに

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

をしかし、「呼び出し側」のプログラムは、常にフィニッシュまでSecondaryProgram.exeを待ちます。私はこれを避け、 "呼び出された"プログラムが閉じる前にすぐに0を返したいと思います。これを行う他の関数はありますか?

+0

あなたはどのOSを使用していますか? – Logicrat

+1

POSIXを使っているなら、2番目のプログラムをexecve()することができます。 – EOF

+0

*私は非常にはっきりしていると思う。*私は、ここに投稿している人は誰も、彼らもそうだと確信している。問題はあなたの読者がそう考えるかどうかです。 –

答えて

0

通常、WindowsコンパイラはexecXXXspawnXXXの機能をサポートしています。

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

CreateProcess()APIを使用してください。別のプロセスを正常に起動すると、処理の完了を待つために使用できるハンドルが返されます。

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

をしかし、あなたはSecondaryProgramが終了するまで漂っDOSボックスを持っている可能性がありますので、このようなものが動作するはずです。

関連する問題