📄 homeworkb2.c
字号:
#include <stdio.h>#include <signal.h>#include <unistd.h>void killchild(int);main(){ static a,b,c; int pid0,pid1,pid2; pid1=fork(); if(pid1==0){ for(;;){ printf("child 1 is alive\n"); sleep(1); b=(int)getpid(); printf("%d\n",b); } } pid2=fork(); if(pid2==0) { for(;;) { printf("child 2 is alive\n"); sleep(2); c=(int)getpid(); printf("%d\n",c); } } // printf("%d %d\n,a,b"); a=(int)getpid(); printf("%d\n",a); void(* old_handler)(int); // printf("%d\n",old_handler); old_handler=signal(SIGINT,killchild); wait(); wait(); // while((c=getchar())!='\n') // ; printf("Parent Process is Killed!\n"); signal(SIGKILL,old_handler);}void killchild(int dump){ int i,j; i=(int)getpid()-1; j=i-1; printf("%d %d\n",i,j); kill(i,SIGKILL); kill(j,SIGKILL); printf("Child Process 1 is Killed by Parent!\n"); printf("Child Process 2 is Killed by Parent!\n");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -