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>
|
2009-09-26 Eric Blake <ebb9@byu.net>
|
||||||
|
|
||||||
* syscalls.cc (link): Delete obsolete comment. Reject directories
|
* syscalls.cc (link): Delete obsolete comment. Reject directories
|
||||||
|
|
|
@ -356,6 +356,7 @@ execve SIGFE
|
||||||
_execve = execve SIGFE
|
_execve = execve SIGFE
|
||||||
execvp SIGFE
|
execvp SIGFE
|
||||||
_execvp = execvp SIGFE
|
_execvp = execvp SIGFE
|
||||||
|
execvpe SIGFE
|
||||||
exit = cygwin_exit SIGFE
|
exit = cygwin_exit SIGFE
|
||||||
_exit SIGFE
|
_exit SIGFE
|
||||||
exp NOSIGFE
|
exp NOSIGFE
|
||||||
|
@ -454,6 +455,7 @@ feof SIGFE
|
||||||
_feof = feof SIGFE
|
_feof = feof SIGFE
|
||||||
ferror SIGFE
|
ferror SIGFE
|
||||||
_ferror = ferror SIGFE
|
_ferror = ferror SIGFE
|
||||||
|
fexecve SIGFE
|
||||||
fflush SIGFE
|
fflush SIGFE
|
||||||
_fflush = fflush SIGFE
|
_fflush = fflush SIGFE
|
||||||
ffs NOSIGFE
|
ffs NOSIGFE
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* exec.cc: exec system call support.
|
/* 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.
|
This file is part of Cygwin.
|
||||||
|
|
||||||
|
@ -14,6 +14,10 @@ details. */
|
||||||
#include "cygerrno.h"
|
#include "cygerrno.h"
|
||||||
#include "path.h"
|
#include "path.h"
|
||||||
#include "environ.h"
|
#include "environ.h"
|
||||||
|
#include "sync.h"
|
||||||
|
#include "fhandler.h"
|
||||||
|
#include "dtable.h"
|
||||||
|
#include "cygheap.h"
|
||||||
#undef _execve
|
#undef _execve
|
||||||
|
|
||||||
/* This is called _execve and not execve because the real execve is defined
|
/* 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;
|
path_conv buf;
|
||||||
return execve (find_exec (path, buf), argv, envp);
|
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.
|
211: Export fpurge, mkstemps.
|
||||||
212: Add and export libstdc++ malloc wrappers.
|
212: Add and export libstdc++ malloc wrappers.
|
||||||
213: Export canonicalize_file_name, eaccess, euidaccess.
|
213: Export canonicalize_file_name, eaccess, euidaccess.
|
||||||
|
214: Export execvpe, fexecve.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
/* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
|
||||||
|
|
||||||
#define CYGWIN_VERSION_API_MAJOR 0
|
#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
|
/* There is also a compatibity version number associated with the
|
||||||
shared memory regions. It is incremented when incompatible
|
shared memory regions. It is incremented when incompatible
|
||||||
|
|
|
@ -152,6 +152,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
||||||
fdopendir
|
fdopendir
|
||||||
feof
|
feof
|
||||||
ferror
|
ferror
|
||||||
|
fexecve
|
||||||
fflush
|
fflush
|
||||||
ffs
|
ffs
|
||||||
fgetc
|
fgetc
|
||||||
|
@ -1015,6 +1016,7 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
||||||
envz_remove
|
envz_remove
|
||||||
envz_strip
|
envz_strip
|
||||||
euidaccess
|
euidaccess
|
||||||
|
execvpe
|
||||||
exp10
|
exp10
|
||||||
exp10f
|
exp10f
|
||||||
fcloseall
|
fcloseall
|
||||||
|
@ -1227,7 +1229,6 @@ also IEEE Std 1003.1-2008 (POSIX.1-2008).</para>
|
||||||
fesetround
|
fesetround
|
||||||
fetestexcept
|
fetestexcept
|
||||||
feupdateenv
|
feupdateenv
|
||||||
fexecve
|
|
||||||
floorl
|
floorl
|
||||||
fmal
|
fmal
|
||||||
fmaxl
|
fmaxl
|
||||||
|
|
Loading…
Reference in New Issue