当前位置: 技术问答>linux和unix
C++代码调用一个可执行程序后,想在5分钟后kill掉它,应当如何做?
来源: 互联网 发布时间:2016-01-17
本文导语: 如题。 我的想法是先system("a.out"); 但之后如何得知这个a.out的进程ID,又如何在5分钟之后kill掉它,还请指教。 对于kill函数也不熟悉,刚刚接触Linux下的C/C++编程,还请指教。 | system("killall -9 ...
如题。
我的想法是先system("a.out");
但之后如何得知这个a.out的进程ID,又如何在5分钟之后kill掉它,还请指教。
对于kill函数也不熟悉,刚刚接触Linux下的C/C++编程,还请指教。
我的想法是先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);
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
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吗?
难道你就不能用fork/exec/alarm/signal/kill吗?