8 extern char **__environ;
10 int __execvpe(const char *file, char *const argv[], char *const envp[])
12 const char *p, *z, *path = getenv("PATH");
17 if (!*file) return -1;
19 if (strchr(file, '/'))
20 return execve(file, argv, envp);
22 if (!path) path = "/usr/local/bin:/bin:/usr/bin";
23 k = strnlen(file, NAME_MAX+1);
28 l = strnlen(path, PATH_MAX-1)+1;
33 if (!z) z = p+strlen(p);
40 memcpy(b+(z-p)+(z>p), file, k+1);
41 execve(b, argv, envp);
53 if (seen_eacces) errno = EACCES;
57 int execvp(const char *file, char *const argv[])
59 return __execvpe(file, argv, __environ);
62 weak_alias(__execvpe, execvpe);