LINUX 进程间的软中断通信,linux进程(软中断通信)
日期: 2021-04-30 分类: 个人收藏 514次阅读
父进程创建两个子进程,接收到Ctrl+\后向两个子进程发送信号16和17 ,结束子进程生命周期
#include
#include
int wait_mark = 1;
void stop()
{
wait_mark = 0;
}
int main()
{
int pid1,pid2;
while((pid1=fork())==-1)
;
printf("pid1=%d\n",pid1);
if(pid1==0)
{
signal(SIGQUIT,SIG_IGN);
wait_mark = 1;
printf("pid1 created!\n");
signal(16,stop);
while(wait_mark)
;
printf("\npid1 killed by parent\n");
}
else
{
while((pid2=fork())==-1){}
printf("pid2=%d\n",pid2);
if(pid2==0)
{
signal(SIGQUIT,SIG_IGN);
wait_mark = 1;
printf("pid2 created!\n");
signal(17,stop);
while(wait_mark)
;
printf("\npid2 killed by parent\n");
}
else
{
signal(SIGQUIT,stop);
while(wait_mark)
;
wait_mark = 1;
kill(pid1,16);
kill(pid2,17);
wait(0);
wait(0);
wait_mark = 1;
while(wait_mark)
{
signal(SIGQUIT,stop);
}
printf("\nparent killed!\n");
}
}
return 0;
}
除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog
精华推荐