1 #include <stdarg.h>
2 #include <unistd.h>
3 
execl(const char * path,const char * argv0,...)4 int execl(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         va_start(ap, argv0);
15         argv[0] = (char*)argv0;
16         for (i = 1; i < argc; i++)
17             argv[i] = va_arg(ap, char*);
18         argv[i] = NULL;
19         va_end(ap);
20         return execv(path, argv);
21     }
22 }
23