用signal函数处理信号的小实例,两种注释,两种方法

信号集得函数还得慢慢写啊

#include <signal.h>
#include <stdio.h>
#include <stdlib.h>

#include <sys/types.h>
#include <unistd.h>
#include <wait.h>

/*void handler(int signum)
{
 printf("===========\n");
 wait(NULL);等待任何子进程
}*/

int main()
{
 pid_t pid;
 /*signal(SIGCHLD, handler);*/用函数处理子进程先退出的问题
 
 pid = fork();
 if(0 > pid)
 {

  perror("fork");
  exit(-1);
 }

 else if( 0== pid)
 {
  printf("pid = %d  %d\n", getpid(), pid );
  
  raise(SIGABRT);//,子进程自己发送给自己进程结束,子进程先于父进程而亡  

                                    //成为僵尸进程
  printf("child process  exit  ..... \n");
  
  //sleep(1);//解决signal在子进程退出之前注册
  exit(0);
  
 }


 else
 {
  //signal(SIGCHLD, SIG_IGN);//子进程中信号被忽略,以免引起僵尸进程
  printf("pid = %d  %d\n", getppid(), pid );
  

 }
}