00001 #include <stdio.h>
00002
00003 #include <stdlib.h>
00004 #include <syscall.h>
00005
00006 int
00007 main (int argc, char *argv[])
00008 {
00009 char buffer[128];
00010 pid_t pid;
00011 int retval = 0;
00012
00013 if (argc != 4)
00014 {
00015 printf ("usage: recursor <string> <depth> <waitp>\n");
00016 exit (1);
00017 }
00018
00019
00020 printf ("%s %s %s %s\n", argv[0], argv[1], argv[2], argv[3]);
00021
00022
00023 if (atoi (argv[2]) != 0)
00024 {
00025 snprintf (buffer, sizeof buffer,
00026 "recursor %s %d %s", argv[1], atoi (argv[2]) - 1, argv[3]);
00027 pid = exec (buffer);
00028 if (atoi (argv[3]))
00029 retval = wait (pid);
00030 }
00031
00032
00033 printf ("%s %s: dying, retval=%d\n", argv[1], argv[2], retval);
00034 exit (retval);
00035 }