Add fexecve, execvpe.
* exec.cc (fexecve): New function. * cygwin.din (execvpe, fexecve): Export new fexecve and existing execvpe. * include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump. * posix.sgml: Mention them.
This commit is contained in:
parent
b14f894fd1
commit
15e9ecd14a
|
@ -1,3 +1,11 @@
|
|||
2009-09-26 Eric Blake <ebb9@byu.net>
|
||||
|
||||
* exec.cc (fexecve): New function.
|
||||
* cygwin.din (execvpe, fexecve): Export new fexecve and existing
|
||||
execvpe.
|
||||
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
|
||||
* posix.sgml: Mention them.
|
||||
|
||||
2009-09-26 Eric Blake <ebb9@byu.net>
|
||||
|
||||
* syscalls.cc (link): Delete obsolete comment. Reject directories
|
||||
|
|
|
@ -356,6 +356,7 @@ execve SIGFE
|
|||
_execve = execve SIGFE
|
||||
execvp SIGFE
|
||||
_execvp = execvp SIGFE
|
||||
execvpe SIGFE
|
||||
exit = cygwin_exit SIGFE
|
||||
_exit SIGFE
|
||||
exp NOSIGFE
|
||||
|
@ -454,6 +455,7 @@ feof SIGFE
|
|||
_feof = feof SIGFE
|
||||
ferror SIGFE
|
||||
_ferror = ferror SIGFE
|
||||
fexecve SIGFE
|
||||
fflush SIGFE
|
||||
_fflush = fflush SIGFE
|
||||
ffs NOSIGFE
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -367,12 +367,13 @@ details. */
|
|||
211: Export fpurge, mkstemps.
|
||||
212: Add and export libstdc++ malloc wrappers.
|
||||
213: Export canonicalize_file_name, eaccess, euidaccess.
|
||||
214: Export execvpe, fexecve.
|
||||
*/
|
||||
|
||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||
|
||||
#define CYGWIN_VERSION_API_MAJOR 0
|
||||
#define CYGWIN_VERSION_API_MINOR 213
|
||||
#define CYGWIN_VERSION_API_MINOR 214
|
||||
|
||||
/* There is also a compatibity version number associated with the
|
||||
shared memory regions. It is incremented when incompatible
|
||||
|
|
|
@ -152,6 +152,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
|||
fdopendir
|
||||
feof
|
||||
ferror
|
||||
fexecve
|
||||
fflush
|
||||
ffs
|
||||
fgetc
|
||||
|
@ -1015,6 +1016,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
|||
envz_remove
|
||||
envz_strip
|
||||
euidaccess
|
||||
execvpe
|
||||
exp10
|
||||
exp10f
|
||||
fcloseall
|
||||
|
@ -1227,7 +1229,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
|||
fesetround
|
||||
fetestexcept
|
||||
feupdateenv
|
||||
fexecve
|
||||
floorl
|
||||
fmal
|
||||
fmaxl
|
||||
|
|
Loading…
Reference in New Issue