2016-03-31 27 views
-2

Windows'ta C programında bir program aramak istiyorum ve hemen ana programı kapatın.C programlamayı C olarak çalıştırın ve bitirmek için beklemeyin

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

Ama SecondaryProgram.exe bitmesini "arayan" programı her zaman bekler: Böyle system() kullanarak denedim. Bundan kaçınmak ve "çağrılan" programın kapanmasından önce 0'a hemen geri dönmek istiyorum, "başka bir iş parçacığı" içinde açmak gibi bir şey. Bunu yapan başka bir işlev var mı?

+0

Hangi İşletim Sistemini kullanıyorsunuz? – Logicrat

+1

POSIX kullanıyorsanız, ikinci programı exec() yapabilirsiniz. – EOF

+0

* BTW, Sanırım çok açık bir şekilde biliyorum. * Buradaki yayınların da iyi olduğunu düşündüğünden eminim. Soru, okuyucularınızın böyle olup olmadığıdır. –

cevap

0

Genellikle Windows derleyiciler, execXXX ve spawnXXX işlevlerini destekler.

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

CreateProcess() API'yi kullanın. Başarıyla başka bir işlemi başlattığında, işlemin tamamlanmasını isteyip istemediğinizi beklemek için kullanabileceğiniz bir tanıtıcı döndürecektir.

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

Ama SecondaryProgram bitene kadar yüzen bir DOS kutusu olabilir: Yani böyle bir şey çalışmalıdır.

İlgili konular