execl.c - 9base - revived minimalist port of Plan 9 userland to Unix
(HTM) git clone git://git.suckless.org/9base
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
execl.c (393B)
---
1 #include <u.h>
2 #include <libc.h>
3
4 int
5 execl(char *prog, ...)
6 {
7 int i;
8 va_list arg;
9 char **argv;
10
11 va_start(arg, prog);
12 for(i=0; va_arg(arg, char*) != nil; i++)
13 ;
14 va_end(arg);
15
16 argv = malloc((i+1)*sizeof(char*));
17 if(argv == nil)
18 return -1;
19
20 va_start(arg, prog);
21 for(i=0; (argv[i] = va_arg(arg, char*)) != nil; i++)
22 ;
23 va_end(arg);
24
25 exec(prog, argv);
26 free(argv);
27 return -1;
28 }
29