1#include <signal.h>
2#include <stdio.h>
3#include <stdlib.h>
4#include <string.h>
5#include <unistd.h>
6
7int
8main (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