18template <
typename Character>
20 bool const pass_environment,
23 Character
const*
const arguments,
34 Character* arguments_buffer[64];
35 Character**
const captured_arguments = traits::capture_argv(
43 __crt_unique_heap_ptr<Character*>
const captured_arguments_cleanup(
44 captured_arguments == arguments_buffer ?
nullptr : captured_arguments);
46 Character
const*
const*
const environment = pass_environment
47 ?
va_arg(varargs, Character
const*
const*)
50 return traits::tspawnve(
mode,
file_name, captured_arguments, environment);
57 char const*
const arguments,
68 char const*
const arguments,
79 char const*
const arguments,
91 char const*
const arguments,
103 wchar_t const*
const arguments,
114 wchar_t const*
const arguments,
125 wchar_t const*
const arguments,
137 wchar_t const*
const arguments,
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
#define _VALIDATE_RETURN_NOEXC(expr, errorcode, retexpr)
static intptr_t __cdecl common_spawnl(bool const pass_environment, int const mode, Character const *const file_name, Character const *const arguments, va_list varargs)
intptr_t __cdecl _execl(char const *const file_name, char const *const arguments,...)
intptr_t __cdecl _execle(char const *const file_name, char const *const arguments,...)
intptr_t __cdecl _wspawnle(int const mode, wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t __cdecl _wexecl(wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t __cdecl _spawnle(int const mode, char const *const file_name, char const *const arguments,...)
intptr_t __cdecl _spawnl(int const mode, char const *const file_name, char const *const arguments,...)
intptr_t __cdecl _wexecle(wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t __cdecl _wspawnl(int const mode, wchar_t const *const file_name, wchar_t const *const arguments,...)