首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

C++代码调用一个可执行程序后,想在5分钟后kill掉它,应当怎么做

2012-03-02 
C++代码调用一个可执行程序后,想在5分钟后kill掉它,应当如何做?如题。我的想法是先system( a.out )但之

C++代码调用一个可执行程序后,想在5分钟后kill掉它,应当如何做?
如题。
我的想法是先system( "a.out ");
但之后如何得知这个a.out的进程ID,又如何在5分钟之后kill掉它,还请指教。
对于kill函数也不熟悉,刚刚接触Linux下的C/C++编程,还请指教。

[解决办法]
system( "killall -9 a.out ")
[解决办法]
system( "ps -A|grep a.out > tmp.txt ");
File *fp = fopen( "tmp.txt ");
while(fgets(buf,255,fp)!=NULL)
{
/*解析每行数据,根据名称匹配打到相应的进程
pid = ;
break;
*/
}
sprintf(cmd, "kill -9 %d ",pid);
system(cmd);
[解决办法]
...
int childPid;
int pid=fork();
if(pid> 0){
childPid=pid;
execvp( "a.out ",argv); //argv: 参数列表,一个字符串指针数组
}
...
...
//after 5 minute,and in somewhere
kill(childPid,9); //kill a.out process
[解决办法]
楼主写出这样的程序来,也真是害人不浅啊

难道你就不能用fork/exec/alarm/signal/kill吗?

热点排行