1 #include <unistd.h> 2 #include <stdarg.h> 3 execl(const char * path,const char * argv0,...)4int execl(const char *path, const char *argv0, ...) 5 { 6 int argc; 7 va_list ap; 8 va_start(ap, argv0); 9 for (argc=1; va_arg(ap, const char *); argc++); 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