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::tspawnvpe(
mode,
file_name, captured_arguments, environment);
57 char const*
const arguments,
67 char const*
const arguments,
78 char const*
const arguments,
89 char const*
const arguments,
101 wchar_t const*
const arguments,
111 wchar_t const*
const arguments,
122 wchar_t const*
const arguments,
133 wchar_t const*
const arguments,
#define _VALIDATE_RETURN(expr, errorcode, retexpr)
#define _VALIDATE_RETURN_NOEXC(expr, errorcode, retexpr)
intptr_t _wspawnlp(int const mode, wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t _wexeclpe(wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t _spawnlp(int const mode, char const *const file_name, char const *const arguments,...)
intptr_t _wspawnlpe(int const mode, wchar_t const *const file_name, wchar_t const *const arguments,...)
intptr_t _wexeclp(wchar_t const *const file_name, wchar_t const *const arguments,...)
static intptr_t __cdecl common_spawnlp(bool const pass_environment, int const mode, Character const *const file_name, Character const *const arguments, va_list varargs)
intptr_t _execlpe(char const *const file_name, char const *const arguments,...)
intptr_t _spawnlpe(int const mode, char const *const file_name, char const *const arguments,...)
intptr_t _execlp(char const *const file_name, char const *const arguments,...)