2012-07-23 48 views
1

我正在使用system()來調用可執行程序(A服務器)。現在過了一段時間我想從我的c程序本身終止這個程序。有誰知道如何做到這一點? 操作系統正在運行:(http://rcn-ee.net/deb/rootfs/precise/ubuntu-12.04-r4-minimal-armhf-2012-07-16.tar.xz)如何從c程序中終止一個exe

+2

哪個操作系統?最簡單的方法是使用'system'來代替kill命令,但爲此設計的API函數是更好的選擇。 – chris 2012-07-23 04:11:46

回答

5

最好的方法這是使用一個函數,可以讓您更好地控制生成的過程,而不是system()。但是,這將是平臺特定的。

  • 對於Windows,使用CreateProcess()它返回一個HANDLE,你可以在以後使用中TerminateProcess()殺死進程。

  • 對於Unix,使用fork()exec(),讓你的孩子的過程,你可以在以後使用中kill()殺進程的PID。

+0

我正在運行linux。我如何獲得進程ID? – user1179510 2012-07-23 04:30:48

+0

'fork()'系統調用創建兩個進程之一,在子進程中返回0,在父進程中返回子進程的pid。搜索諸如「fork exec tutorial」之類的東西,以獲取如何使用這些函數的示例。 – 2012-07-23 04:34:16

+0

好的。讓我試試看! – user1179510 2012-07-23 04:35:51