xref: /openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/foll-exec.c (revision b725ae7711052a2233e31a66fefb8a752c388d7a)
1*b725ae77Skettenis #include <stdio.h>
2*b725ae77Skettenis #include <stdlib.h>
3*b725ae77Skettenis #include <unistd.h>
4*b725ae77Skettenis #include <string.h>
5*b725ae77Skettenis 
6*b725ae77Skettenis 
7*b725ae77Skettenis int  global_i = 100;
8*b725ae77Skettenis 
9*b725ae77Skettenis #ifdef PROTOTYPES
main(void)10*b725ae77Skettenis int main (void)
11*b725ae77Skettenis #else
12*b725ae77Skettenis main ()
13*b725ae77Skettenis #endif
14*b725ae77Skettenis {
15*b725ae77Skettenis   int  local_j = global_i+1;
16*b725ae77Skettenis   int  local_k = local_j+1;
17*b725ae77Skettenis 
18*b725ae77Skettenis   printf ("foll-exec is about to execlp(execd-prog)...\n");
19*b725ae77Skettenis 
20*b725ae77Skettenis   execlp ("gdb.base/execd-prog",
21*b725ae77Skettenis           "gdb.base/execd-prog",
22*b725ae77Skettenis           "execlp arg1 from foll-exec",
23*b725ae77Skettenis           (char *)0);
24*b725ae77Skettenis 
25*b725ae77Skettenis   printf ("foll-exec is about to execl(execd-prog)...\n");
26*b725ae77Skettenis 
27*b725ae77Skettenis   execl ("gdb.base/execd-prog",
28*b725ae77Skettenis          "gdb.base/execd-prog",
29*b725ae77Skettenis          "execl arg1 from foll-exec",
30*b725ae77Skettenis          "execl arg2 from foll-exec",
31*b725ae77Skettenis          (char *)0);
32*b725ae77Skettenis 
33*b725ae77Skettenis   {
34*b725ae77Skettenis     static char * argv[] = {
35*b725ae77Skettenis       (char *)"gdb.base/execd-prog",
36*b725ae77Skettenis       (char *)"execv arg1 from foll-exec",
37*b725ae77Skettenis       (char *)0};
38*b725ae77Skettenis 
39*b725ae77Skettenis     printf ("foll-exec is about to execv(execd-prog)...\n");
40*b725ae77Skettenis 
41*b725ae77Skettenis     execv ("gdb.base/execd-prog", argv);
42*b725ae77Skettenis   }
43*b725ae77Skettenis }
44