diff options
Diffstat (limited to 'lib/libc/gen/exec.c')
-rw-r--r-- | lib/libc/gen/exec.c | 31 |
1 files changed, 22 insertions, 9 deletions
diff --git a/lib/libc/gen/exec.c b/lib/libc/gen/exec.c index 2cf7a36..4525ce2 100644 --- a/lib/libc/gen/exec.c +++ b/lib/libc/gen/exec.c @@ -140,20 +140,15 @@ execv(name, argv) int execvp(const char *name, char * const *argv) { - const char *path; - - /* Get the path we're searching. */ - if ((path = getenv("PATH")) == NULL) - path = _PATH_DEFPATH; - - return (execvP(name, path, argv)); + return (execvpe(name, argv, environ)); } -int -execvP(name, path, argv) +static int +execvPe(name, path, argv, envp) const char *name; const char *path; char * const *argv; + char * const *envp; { char **memp; int cnt, lp, ln; @@ -269,3 +264,21 @@ retry: (void)_execve(bp, argv, environ); done: return (-1); } + +int +execvP(const char *name, const char *path, char * const argv[]) +{ + return execvPe(name, path, argv, environ); +} + +int +execvpe(const char *name, char * const argv[], char * const envp[]) +{ + const char *path; + + /* Get the path we're searching. */ + if ((path = getenv("PATH")) == NULL) + path = _PATH_DEFPATH; + + return (execvPe(name, path, argv, envp)); +} |