Blob


1 #include <u.h>
2 #include <libc.h>
4 int
5 execl(char *prog, ...)
6 {
7 int i;
8 va_list arg;
9 char **argv;
11 va_start(arg, prog);
12 for(i=0; va_arg(arg, char*) != nil; i++)
13 ;
14 va_end(arg);
16 argv = malloc((i+1)*sizeof(char*));
17 if(argv == nil)
18 return -1;
20 va_start(arg, prog);
21 for(i=0; (argv[i] = va_arg(arg, char*)) != nil; i++)
22 ;
23 va_end(arg);
25 exec(prog, argv);
26 free(argv);
27 return -1;
28 }