Revise makefile structure.
[pintos-anon] / src / tests / userprog / recursor.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <syscall.h>
4
5 int
6 main (int argc, char *argv[])
7 {
8   char buffer[128];
9   pid_t pid;
10   int retval = 0;
11
12   if (argc != 4) 
13     {
14       printf ("usage: recursor <string> <depth> <joinp>\n");
15       exit (1);
16     }
17
18   /* Print args. */
19   printf ("%s %s %s %s\n", argv[0], argv[1], argv[2], argv[3]);
20
21   /* Execute child and wait for it to finish if requested. */
22   snprintf (buffer, sizeof buffer,
23             "recursor fork %d %s", atoi (argv[2]) + 1, argv[3]);
24   pid = exec (buffer);
25   if (atoi (argv[3]))
26     retval = join (pid);
27
28   /* Done. */
29   printf ("%s: dying, retval=%d\n", argv[1], retval);
30   exit (retval);
31 }