1 #include <signal.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <string.h> 5 #include <unistd.h> 6 7 int 8 main (int argc, char **argv) 9 { 10 fprintf(stderr, "starting ...\n"); 11 12 // Three ways of going away... 13 if (argc > 1) 14 { 15 // Explicit exit() with exit code. 16 if (strcmp (argv[1], "exit") == 0) 17 { 18 fprintf(stderr, "exiting ...\n"); 19 exit (1); 20 } 21 22 // Get killed by a signal. 23 if (strcmp (argv[1], "abort") == 0) 24 { 25 fprintf(stderr, "aborting ...\n"); 26 kill(getpid(), SIGABRT); 27 } 28 } 29 30 // And finally, just return from main with success. 31 fprintf(stderr, "returning ...\n"); 32 return 0; 33 } 34