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

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