1 #include <stdarg.h>
2 #include <unistd.h>
3
execle(const char * path,const char * argv0,...)4 int execle(const char* path, const char* argv0, ...) {
5 int argc;
6 va_list ap;
7 va_start(ap, argv0);
8 for (argc = 1; va_arg(ap, const char*); argc++)
9 ;
10 va_end(ap);
11 {
12 int i;
13 char* argv[argc + 1];
14 char** envp;
15 va_start(ap, argv0);
16 argv[0] = (char*)argv0;
17 for (i = 1; i <= argc; i++)
18 argv[i] = va_arg(ap, char*);
19 envp = va_arg(ap, char**);
20 va_end(ap);
21 return execve(path, argv, envp);
22 }
23 }
24