运行代码,输入CTRL +C的时候只输出了Parent process is killed! 子进程未显示被杀死,求指教
#include<stdio.h>
#include<unistd.h>
#include<signal.h>
#include<wait.h>
int flag;
void stop();
void main(){
flag = 1;
pid_t pid1;
pid_t pid2;
while((pid1 = fork()) == -1);
if(pid1>0){
while((pid2 = fork()) == -1);
if(pid2 > 0){
signal(2,stop);
while(flag){
printf("parent process is waiting a ctrl+c signal\n");
sleep(1);
}
sleep(1);
kill(pid1,16);
sleep(1);
kill(pid2,17);
wait(0);
wait(0);
printf("Parent process is killed!\n");
}else{
signal(17,stop);
flag = 1;
while(flag);
printf("Child process2 is killed by parent!\n");
exit(0);
}
}else{
signal(16,stop);
flag = 1;
while(flag);
printf("Child process1 is killed by parent!\n");
exit(0);
}
}
void stop(){
flag = 0;
}