1*99451b44SJordan Rupprecht #include <signal.h> 2*99451b44SJordan Rupprecht #include <stdio.h> 3*99451b44SJordan Rupprecht #include <string.h> 4*99451b44SJordan Rupprecht #include <unistd.h> 5*99451b44SJordan Rupprecht handler(int signo)6*99451b44SJordan Rupprechtvoid handler(int signo) 7*99451b44SJordan Rupprecht { 8*99451b44SJordan Rupprecht _exit(signo); 9*99451b44SJordan Rupprecht } 10*99451b44SJordan Rupprecht main(int argc,char * argv[])11*99451b44SJordan Rupprechtint main (int argc, char *argv[]) 12*99451b44SJordan Rupprecht { 13*99451b44SJordan Rupprecht if (signal(SIGTRAP, handler) == SIG_ERR) 14*99451b44SJordan Rupprecht { 15*99451b44SJordan Rupprecht perror("signal(SIGTRAP)"); 16*99451b44SJordan Rupprecht return 1; 17*99451b44SJordan Rupprecht } 18*99451b44SJordan Rupprecht #ifndef __APPLE__ 19*99451b44SJordan Rupprecht // Real time signals not supported on apple platforms. 20*99451b44SJordan Rupprecht if (signal(SIGRTMIN, handler) == SIG_ERR) 21*99451b44SJordan Rupprecht { 22*99451b44SJordan Rupprecht perror("signal(SIGRTMIN)"); 23*99451b44SJordan Rupprecht return 1; 24*99451b44SJordan Rupprecht } 25*99451b44SJordan Rupprecht #endif 26*99451b44SJordan Rupprecht 27*99451b44SJordan Rupprecht if (argc < 2) 28*99451b44SJordan Rupprecht { 29*99451b44SJordan Rupprecht puts("Please specify a signal to raise"); 30*99451b44SJordan Rupprecht return 1; 31*99451b44SJordan Rupprecht } 32*99451b44SJordan Rupprecht 33*99451b44SJordan Rupprecht if (strcmp(argv[1], "SIGSTOP") == 0) 34*99451b44SJordan Rupprecht raise(SIGSTOP); 35*99451b44SJordan Rupprecht else if (strcmp(argv[1], "SIGTRAP") == 0) 36*99451b44SJordan Rupprecht raise(SIGTRAP); 37*99451b44SJordan Rupprecht #ifndef __APPLE__ 38*99451b44SJordan Rupprecht else if (strcmp(argv[1], "SIGRTMIN") == 0) 39*99451b44SJordan Rupprecht raise(SIGRTMIN); 40*99451b44SJordan Rupprecht #endif 41*99451b44SJordan Rupprecht else 42*99451b44SJordan Rupprecht { 43*99451b44SJordan Rupprecht printf("Unknown signal: %s\n", argv[1]); 44*99451b44SJordan Rupprecht return 1; 45*99451b44SJordan Rupprecht } 46*99451b44SJordan Rupprecht 47*99451b44SJordan Rupprecht return 0; 48*99451b44SJordan Rupprecht } 49*99451b44SJordan Rupprecht 50