1#include <unistd.h> 2#include <stdarg.h> 3 4int execle(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 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