1 #include <stdarg.h>
2 #include <unistd.h>
3 
execlp(const char * file,const char * argv0,...)4 int execlp(const char* file, 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 execvp(file, argv);
21     }
22 }
23