diff options
Diffstat (limited to 'winsup/cygwin/exec.cc')
-rw-r--r-- | winsup/cygwin/exec.cc | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/winsup/cygwin/exec.cc b/winsup/cygwin/exec.cc index ee0709c98..131439fbc 100644 --- a/winsup/cygwin/exec.cc +++ b/winsup/cygwin/exec.cc @@ -1,6 +1,6 @@ /* exec.cc: exec system call support. - Copyright 1996, 1997, 1998, 2000, 2001, 2002 Red Hat, Inc. + Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2009 Red Hat, Inc. This file is part of Cygwin. @@ -14,6 +14,10 @@ details. */ #include "cygerrno.h" #include "path.h" #include "environ.h" +#include "sync.h" +#include "fhandler.h" +#include "dtable.h" +#include "cygheap.h" #undef _execve /* This is called _execve and not execve because the real execve is defined @@ -91,3 +95,15 @@ execvpe (const char *path, char * const *argv, char *const *envp) path_conv buf; return execve (find_exec (path, buf), argv, envp); } + +extern "C" int +fexecve (int fd, char * const *argv, char *const *envp) +{ + cygheap_fdget cfd (fd); + if (cfd < 0) + { + syscall_printf ("-1 = fexecve (%d, %p, %p)", fd, argv, envp); + return -1; + } + return execve (cfd->pc.get_win32 (), argv, envp); +} |