28 lines
		
	
	
	
		
			391 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
	
		
			391 B
		
	
	
	
		
			C
		
	
	
	
	
	
| #include "stdio.h"
 | |
| #include "signal.h"
 | |
| 
 | |
| #ifndef SIGIOT
 | |
| #define SIGIOT SIGABRT
 | |
| #endif
 | |
| 
 | |
|  void
 | |
| sig_die(s, kill)
 | |
| register char *s;
 | |
| int kill;
 | |
| {
 | |
| 	/* print error message, then clear buffers */
 | |
| 	extern void exit(), f_exit();
 | |
| 	fprintf(stderr, "%s\n", s);
 | |
| 	fflush(stderr);
 | |
| 	f_exit();
 | |
| 	fflush(stderr);
 | |
| 
 | |
| 	if(kill)
 | |
| 		{
 | |
| 		/* now get a core */
 | |
| 		signal(SIGIOT, SIG_DFL);
 | |
| 		abort();
 | |
| 		}
 | |
| 	else
 | |
| 		exit(1);
 | |
| 	}
 |