看看这个通信的例子
#include<stdio.h>
#include<signal.h>
#include<stdlib.h>
main(){
      int pid,i;
      void list(){
           for(i='a';i<='z';i++)
           {  
              putchar(i);
           ]
      }
   //----------------------------
      while((pid=fork())==-1);
      if(pid==0){
             signal(17,list);    //接收信号17,执行list函数
             exit(0);
      }else{
            kill(pid,17);        //将17信号发送给pid
            wait(0);
            exit(0);
      }
}
执行后什么也没有输出,我也不知道是哪里出问题了,可能信号没接受到就结束了
------解决方案--------------------
你猜对了,子进程很快结束了
加一句
 if(pid==0){
 signal(17,list); //接收信号17,执行list函数
 pause();
 exit(0);
另外,最好把signal(17,list); 放在fork()之前
以免子进程还没执行signal,父进程就发送了信号