home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_09_03 / 9n03128a < prev    next >
Text File  |  1991-01-16  |  480b  |  26 lines

  1.  
  2. jmp_buf env;
  3. int valid_env = 0;
  4.  
  5. void
  6. sig_handler(sig)
  7. int sig;
  8. {
  9.     assert(sig >= 0 && sig < NSIG);
  10.  
  11.     if (!signals[sig].action) {
  12.         /* always an error except when sig == 0 */
  13.         if (sig == 0) return;
  14.         fprintf(stderr,"unexpected signal delivered - %s (%d)\n",
  15.             signal_to_string(sig),sig);
  16.     } else {
  17.         signal(sig, sig_handler);   
  18.         eval(signals[sig].action);
  19.     }
  20.  
  21.     if (valid_env) longjmp(env,1);
  22. }
  23.  
  24.  
  25.  
  26.