#include<stdio.h>
#include<sys/types.h>
#include<signal.h>
#include<stdlib.h>
#include<unistd.h>
#include<fcntl.h>
#include<sys/wait.h>
int main()
{
//kill函数在多个子进程中杀死第三个子进程:
pid_t pid, q;
int i=0;
int k=5;
for(i;i<5;i++){
pid=fork();
if(pid<0){
perror("fork fail");
exit(1);
}
else if(pid==0){
break;
}
}
if(i<5){
sleep(i);
printf("I am %dth Child\n",i+1);
if(i==2)
q=pid;
}
else{
sleep(6);
printf("kill 3th Child\n");
kill(q,SIGKILL);
while(1);
}
return 0;
}
kill函数将信号发给指定的进程或者进程组。
raise函数则允许进程向自身发送信号。
raise(signo) == kill(getpid(),signo);