| execl.c - 9base - revived minimalist port of Plan 9 userland to Unix | |
| git clone git://git.suckless.org/9base | |
| Log | |
| Files | |
| Refs | |
| README | |
| 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 |