3.c
来自「实现进程间的创建、管理、软中断通信和管道通信」· C语言 代码 · 共 49 行
C
49 行
#include<stdio.h>
#include<stdlib.h>
#include<signal.h>
#include<sys/types.h>
int pid1;
int pid2;
void func(){
kill(pid1,10);
kill(pid2,12);
wait(NULL);
wait(NULL);
printf("Parent process is killed !\n");
}
void func1(){
printf("Child process one is killed by Parent!\n");
exit(0);
}
void func2(){
printf("Child process two is killed by Parent!\n");
exit(0);
}
main(){
pid1=fork();
if(pid1==0){
sigset_t i;
sigemptyset(&i);
sigaddset(&i,SIGINT);
sigprocmask(SIG_BLOCK,&i,NULL);
signal(10,func1);
while(1){;}
}
else if(pid1>0){
pid2=fork();
if(pid2==0){
sigset_t j;
sigemptyset(&j);
sigaddset(&j,SIGINT);
sigprocmask(SIG_BLOCK,&j,NULL);
signal(12,func2);
while(1){;}
}
else{
signal(SIGINT,func);
while(1){;}
}
}
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?