7 extern char **__environ;
9 int __execvpe(const char *file, char *const argv[], char *const envp[])
11 const char *p, *z, *path = getenv("PATH");
16 if (!*file) return -1;
18 if (strchr(file, '/'))
19 return execve(file, argv, envp);
21 if (!path) path = "/usr/local/bin:/bin:/usr/bin";
22 k = strnlen(file, NAME_MAX+1);
27 l = strnlen(path, PATH_MAX-1)+1;
31 z = __strchrnul(p, ':');
38 memcpy(b+(z-p)+(z>p), file, k+1);
39 execve(b, argv, envp);
51 if (seen_eacces) errno = EACCES;
55 int execvp(const char *file, char *const argv[])
57 return __execvpe(file, argv, __environ);
60 weak_alias(__execvpe, execvpe);