29 lines
392 B
C
29 lines
392 B
C
#include <u.h>
|
|
#include <libc.h>
|
|
|
|
int
|
|
execl(char *prog, ...)
|
|
{
|
|
int i;
|
|
va_list arg;
|
|
char **argv;
|
|
|
|
va_start(arg, prog);
|
|
for(i=0; va_arg(arg, char*) != nil; i++)
|
|
;
|
|
va_end(arg);
|
|
|
|
argv = malloc((i+1)*sizeof(char*));
|
|
if(argv == nil)
|
|
return -1;
|
|
|
|
va_start(arg, prog);
|
|
for(i=0; (argv[i] = va_arg(arg, char*)) != nil; i++)
|
|
;
|
|
va_end(arg);
|
|
|
|
exec(prog, argv);
|
|
free(argv);
|
|
return -1;
|
|
}
|