_spawnvpe、_wspawnvpe_spawnvpe, _wspawnvpe

创建并执行更新过程。Creates and executes a new process.


此 API 不能用于在 Windows 运行时中执行的应用程序。This API cannot be used in applications that execute in the Windows Runtime. 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数For more information, see CRT functions not supported in Universal Windows Platform apps.


intptr_t _spawnvpe(
   int mode,
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
intptr_t _wspawnvpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp


调用进程的执行模式Execution mode for calling process

要执行的文件的路径Path of file to be executed

指向参数的指针的数组。Array of pointers to arguments. 自变量argv[0] 通常是路径指向实际模式中或为程序名称在受保护模式下,和argv[1] 通过argv[n] 是指向构成新参数列表的字符字符串的指针。The argument argv[0] is usually a pointer to a path in real mode or to the program name in protected mode, and argv[1] through argv[n] are pointers to the character strings forming the new argument list. 自变量argv[n + 1] 必须是NULL指针,用以标记自变量列表的末尾。The argument argv[n +1] must be a NULL pointer to mark the end of the argument list.

指向环境设置的指针的数组Array of pointers to environment settings

返回值Return Value

返回值从同步 _spawnvpe_wspawnvpe (_P_WAIT指定的模式) 是新的退出状态过程。The return value from a synchronous _spawnvpe or _wspawnvpe (_P_WAIT specified for mode) is the exit status of the new process. 返回值从异步 _spawnvpe_wspawnvpe (_P_NOWAIT_P_NOWAITO指定的模式) 是进程句柄。The return value from an asynchronous _spawnvpe or _wspawnvpe (_P_NOWAIT or _P_NOWAITO specified for mode) is the process handle. 如果进程正常终止,则退出状态为 0。The exit status is 0 if the process terminated normally. 则可以将退出状态设置为非零值,如果生成的进程专门调用退出例程具有非零参数。You can set the exit status to a nonzero value if the spawned process specifically calls the exit routine with a nonzero argument. 如果更新过程没有显式设置正退出状态,则正退出状态指示因中止或中断而异常退出。If the new process did not explicitly set a positive exit status, a positive exit status indicates an abnormal exit with an abort or an interrupt. 返回值-1 指示的错误 (不启动新过程)。A return value of -1 indicates an error (the new process is not started). 在这种情况下, errno设置为以下值之一:In this case, errno is set to one of the following values:

E2BIGE2BIG 参数列表超过 1024 个字节。Argument list exceeds 1024 bytes.
EINVALEINVAL 模式参数无效。mode argument is invalid.
ENOENTENOENT 未找到文件或路径。File or path is not found.
ENOEXECENOEXEC 指定的文件不是可执行文件或者有无效的可执行文件格式。Specified file is not executable or has invalid executable-file format.
ENOMEMENOMEM 没有足够的内存可用于执行新进程。Not enough memory is available to execute the new process.

有关这些代码以及其他返回代码的详细信息,请参阅 _doserrno、errno、_sys_errlist 和 _sys_nerrSee _doserrno, errno, _sys_errlist, and _sys_nerr for more information on these, and other, return codes.


所有这些函数将创建并执行一个新进程,同时将一个指针数组传递给命令行自变量,并将一个指针数组传递给环境设置。Each of these functions creates and executes a new process, passing an array of pointers to command-line arguments and an array of pointers to environment settings. 这些函数将使用路径环境变量查找要执行的文件。These functions use the PATH environment variable to find the file to execute.

这些函数验证其参数。These functions validate their parameters. 如果任一cmdnameargv是 null 指针,或如果argv指向 null 指针,或argv[0] 为空字符串,无效调用的参数处理程序,如中所述参数验证If either cmdname or argv is a null pointer, or if argv points to null pointer, or argv[0] is an empty string, the invalid parameter handler is invoked, as described in Parameter Validation . 如果允许执行继续,则这些函数将设置errnoEINVAL,并返回-1。If execution is allowed to continue, these functions set errno to EINVAL, and return -1. 不生成任何新进程。No new process is spawned.


例程Routine 必需的标头Required header
_spawnvpe_spawnvpe <stdio.h> 或 <process.h><stdio.h> or <process.h>
_wspawnvpe_wspawnvpe <stdio.h> 或 <wchar.h><stdio.h> or <wchar.h>

有关其他兼容性信息,请参阅 兼容性For additional compatibility information, see Compatibility.


在参见 _spawn、_wspawn 函数中的示例。See the example in _spawn, _wspawn Functions.

请参阅See also

_exec、_wexec 函数_exec, _wexec Functions
exit、_Exit、_exitexit, _Exit, _exit
_onexit、_onexit_m_onexit, _onexit_m
system、_wsystemsystem, _wsystem