1 #include <stdarg.h> 2 #include <unistd.h> 3 execl(const char * path,const char * argv0,...)4int 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