2012-07-23 51 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