最近遇到一个问题: 有两个独立进程a和b,实现a进程关闭b进程. 用C语言写,谢谢。 10

 我来答
文耕实验室
2013-03-19 · TA获得超过210个赞
知道答主
回答量:70
采纳率:0%
帮助的人:84万
展开全部
楼上程序虽然简洁,但是用kill杀掉另外一个进程,小弟弟我不推荐,这样会使程序变得不可控,进程本来就是不可控的东西。我建议设置一个公共变量,用互斥锁锁起来,这个进程给另外一个进程发出退出命令,最好的方法就是修改这个变量的值,另外一个进程在安全的地方加入这个值的检测,发现值被改变了,就安全退出。代码不写了,把楼上的高手的程序改改就行,很简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b2966ac
2013-03-18 · TA获得超过440个赞
知道答主
回答量:163
采纳率:0%
帮助的人:138万
展开全部
#include <unistd.h>
#include <stdio.h>
#include <signal.h>
#include <sys/types.h>

void b(void)
{
while(1)
{
printf("In b:%d . . .\n",getpid());
sleep(1);
}
}

void a(pid_t pid)
{
printf("In a:%d . . .\n",getpid());

sleep(3);
kill(pid,SIGKILL);

printf("%d Killed . . .\n",pid);
}

int main(void)
{
pid_t pid;

if((pid=fork())==0)
b();
if(fork()==0)
a(pid);

wait(NULL);
return 0;
}
追问
亲,是在linux下运行的?
追答
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式