64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
| #include <string.h>
 | |
| #include <signal.h>
 | |
| #include <stdio.h>
 | |
| #include <reent.h>
 | |
| 
 | |
| static const char *sigstring[] =
 | |
|   {
 | |
|     "Signal 0",
 | |
|     "Hangup",
 | |
|     "Interrupt",
 | |
|     "Quit",
 | |
|     "Illegal instruction",
 | |
|     "Trace/breakpoint trap",
 | |
|     "IOT trap",
 | |
|     "EMT trap",
 | |
|     "Floating point exception",
 | |
|     "Killed",
 | |
|     "Bus error",
 | |
|     "Segmentation fault",
 | |
|     "Bad system call",
 | |
|     "Broken pipe",
 | |
|     "Alarm clock",
 | |
|     "Terminated",
 | |
|     "Urgent I/O condition",
 | |
|     "Stopped (signal)",
 | |
|     "Stopped",
 | |
|     "Continued",
 | |
|     "Child exited",
 | |
|     "Stopped (tty input)",
 | |
|     "Stopped (tty output)",
 | |
|     "I/O possible",
 | |
|     "CPU time limit exceeded",
 | |
|     "File size limit exceeded",
 | |
|     "Virtual timer expired",
 | |
|     "Profiling timer expired",
 | |
|     "Window changed",
 | |
|     "Resource lost",
 | |
|     "User defined signal 1",
 | |
|     "User defined signal 2"
 | |
|   };
 | |
| 
 | |
| char *
 | |
| strsignal (int sig)
 | |
| {
 | |
|   if (sig < 0 || sig >= __SIGRTMIN)
 | |
|     {
 | |
|       char *buffer;
 | |
|       struct _reent *ptr;
 | |
| 
 | |
|       ptr = _REENT;
 | |
| 
 | |
|       _REENT_CHECK_SIGNAL_BUF(ptr);
 | |
|       buffer = _REENT_SIGNAL_BUF(ptr);
 | |
| 
 | |
|       if (sig < 0 || sig > __SIGRTMAX)
 | |
|         siprintf (buffer, "Unknown signal %d", sig);
 | |
|       else
 | |
|         siprintf (buffer, "Real-time signal %d", sig - __SIGRTMIN);
 | |
|       return buffer;
 | |
|     }
 | |
|   else
 | |
|     return sigstring[sig];
 | |
| }
 |