4 * Common implementation of execl() execle() execlp()
11 int NAME (const char *path, const char *arg0, ...)
15 const char **argv, **argp;
26 /* Count the number of arguments */
28 arg = va_arg(cap, const char *);
34 /* Allocate memory for the pointer array */
35 argp = argv = alloca(argc*sizeof(const char *));
41 /* Copy the list into an array */
44 *argp++ = arg = va_arg(ap, const char *);
48 /* execle() takes one more argument for the environment pointer */
49 envp = va_arg(ap, char * const *);
52 rv = (EXEC_P ? execvpe : execve)(path, (char * const *)argv, envp);