7 int execvp(const char *file, char *const argv[])
9 const char *p, *z, *path = getenv("PATH");
13 if (!*file) return -1;
15 if (strchr(file, '/'))
16 return execv(file, argv);
18 if (!path) path = "/usr/local/bin:/bin:/usr/bin";
19 k = strnlen(file, NAME_MAX+1);
24 l = strnlen(path, PATH_MAX-1)+1;
29 if (!z) z = p+strlen(p);
36 memcpy(b+(z-p)+(z>p), file, k+1);
38 if (errno != ENOENT) return -1;