Listing 2

/* Recursively call main() : VAX-C v3.1 */

#include <stdio.h>

main( argc, argv )
   int argc;
   char **argv;
   {
     char *new_argv[] = {NULL, "1", "2", "3", NULL};
     int i;
     static int level = 0;

     void (*pf) (int, char *);

     /* Test level of recursion */
     if (level < 2 )
     {
        printf( "\nLevel = %ld\n", level );
        level++;
     }
     else
        exit ();

   /* Print arguments */
   i = 0;
   while ( argv[i] )
   {
     printf( "argv[%ld] -> %s\n", i, argv[i] );
     i++;
   }

   /* Recursively call main () */
   new_argv[0] = argv[0];
   pf = main;   (*pf) ( 3, new_argv );
}

/* End of File */