%>

创建并执行更新过程。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数

语法

intptr_t _spawnlpe(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL,
   const char *const *envp
);
intptr_t _wspawnlpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL,
   const wchar_t *const *envp
);

参数

mode
调用进程的执行模式。

cmdname
要执行的文件的路径。


指向参数的指针的列表。 arg0 参数通常是指向 cmdname 的指针。 参数 arg1argN 是指向构成新参数列表的字符字符串的指针。 在 argN之后,必须是一个 NULL 指针,用以标记参数列表的末尾。

envp
指向环境设置的指针的数组。

返回值

同步 _spawnlpe_wspawnlpe(为 _P_WAIT 指定的 mode)中的返回值是新进程的退出状态。 异步 _spawnlpe_wspawnlpe (为_P_NOWAIT 指定的 _P_NOWAITOmode)的返回值是进程句柄。 如果进程正常终止,则退出状态为 0。 如果生成进程专门使用非零参数调用 exit 例程,则可以将退出状态设置为一个非零值。 如果更新过程未显式设置正退出状态,则正退出状态指示因中止或中断而造成的异常退出。 返回值 -1 表示错误(未启动新进程)。 在这种情况下,errno 设置为下列值之一。

说明
E2BIG 参数列表超过 1024 个字节。
EINVAL mode 参数无效。
ENOENT 未找到文件或路径。
ENOEXEC 指定的文件不是可执行文件或者有无效的可执行文件格式。
ENOMEM 没有足够的内存可用于执行新进程。

有关这些和其他的返回代码的详细信息,请参阅 errno_doserrno_sys_errlist_sys_nerr

注解

其中每个函数都创建并执行一个新进程,将每个命令行自变量作为单独的参数进行传递,并将一个数组指针传递给环境设置。 这些函数使用 PATH 环境变量查找要执行的文件。

这些函数验证其参数。 如果 cmdnamearg0 为空字符串或空指针,则会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则这些功能将 errno 设置为 EINVAL,并返回 -1。 不生成任何新进程。

要求

例程 必需的标头
_spawnlpe <process.h>
_wspawnlpe <stdio.h> 或 <wchar.h>

有关兼容性的详细信息,请参阅 兼容性

示例

请参阅 _spawn_wspawn 函数中的示例。

另请参阅

进程和环境控制
_spawn_wspawn 函数
abort
atexit
_exec_wexec 函数
.- .
_flushall
_getmbcp
%>
_setmbcp
%>