%>
创建并执行更新过程。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数。
语法
intptr_t _spawnle(
int mode,
const char *cmdname,
const char *arg0,
const char *arg1,
... const char *argn,
NULL,
const char *const *envp
);
intptr_t _wspawnle(
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
的指针。 参数 arg1
到 argN
是指向构成新参数列表的字符字符串的指针。 在 argN
之后,必须是一个 NULL
指针,用以标记参数列表的末尾。
envp
指向环境设置的指针的数组。
返回值
同步 _spawnle
或 _wspawnle
(为 _P_WAIT
指定的 mode
)中的返回值是新进程的退出状态。 异步 _spawnle
或 _wspawnle
(为_P_NOWAIT
指定的 _P_NOWAITO
或 mode
)的返回值是进程句柄。 如果进程正常终止,则退出状态为 0。 如果生成的进程专门调用具有非零参数的 exit
例程,则可以将退出状态设置为一个非零值。 如果更新过程没有显式设置正退出状态,则正退出状态指示因中止或中断而异常退出。 返回值 -1 表示错误(未启动新进程)。 在这种情况下,errno
设置为下列值之一。
值 | 说明 |
---|---|
E2BIG |
参数列表超过 1024 个字节。 |
EINVAL |
mode 参数无效。 |
ENOENT |
未找到文件或路径。 |
ENOEXEC |
指定的文件不是可执行文件或者有无效的可执行文件格式。 |
ENOMEM |
没有足够的内存可用于执行新进程。 |
有关这些和其他的返回代码的详细信息,请参阅 errno
、_doserrno
、_sys_errlist
和 _sys_nerr
。
备注
这些函数将创建并执行一个新进程,并将每个命令行实参作为独立的形参传递,还将传递指向环境设置的指针的数组。
这些函数验证其参数。 如果 cmdname
或 arg0
为空字符串或空指针,则会调用无效的参数处理程序,如参数验证中所述。 如果允许执行继续,则这些功能将 errno
设置为 EINVAL
,并返回 -1。 不生成任何新进程。
要求
例程 | 必需的标头 |
---|---|
_spawnle |
<process.h> |
_wspawnle |
<stdio.h> 或 <wchar.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
请参阅 _spawn
、_wspawn
函数中的示例。
另请参阅
进程和环境控制
_spawn
、_wspawn
函数
abort
atexit
_exec
、_wexec
函数
.- .
_flushall
_getmbcp
%>
_setmbcp
%>