6.打开终端输入”vim Test22.c”,回车
7.按下”i”键,输入代码(可复制粘贴)
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
pid_t p1,p2;
void stop(int sig){
kill(p1, SIGUSR1);
kill(p2, SIGUSR2);
}
void stop1(int sig){
printf("Child Process11 is Killed by Parent!\n");
}
void stop2(int sig){
printf("Child Process12 is Killed by Parent!\n");
}
int main(int argc, const char * argv[]) {
p1 = fork();
if (p1 > 0) {
p2 = fork();
if (p2 > 0) {
signal(SIGINT,stop); wait(NULL);
printf("Parent Process is Killed!\n");
}
if (p2 == 0) {
signal(SIGINT, SIG_IGN);
signal(SIGUSR2, stop1);
pause();
}
}
if (p1 == 0) {
signal(SIGINT, SIG_IGN);
signal(SIGUSR1,stop1);
pause();
}
return 0;
}
8.代码输入完成,按”Esc”键,然后输入”:wq”命名保存代码
9.输入”gcc -o Test22 Test22.c”
10.输入”./Test22”(多次输入该指令体现出每次运行结果不同即可)