%>
加载和执行新的子进程。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。 有关详细信息,请参阅通用 Windows 平台应用中不支持的 CRT 函数。
语法
intptr_t _execve(
const char *cmdname,
const char *const *argv,
const char *const *envp
);
intptr_t _wexecve(
const wchar_t *cmdname,
const wchar_t *const *argv,
const wchar_t *const *envp
);
参数
cmdname
要执行的文件的路径。
argv
指向参数的指针的数组。
envp
指向环境设置的指针的数组。
返回值
如果成功,这些函数不返回到调用进程。 返回值 -1 表示错误,在此情况下将会设置 errno
全局变量。
errno 值 |
说明 |
---|---|
E2BIG |
自变量和环境设置所需的空间超过 32 KB。 |
EACCES |
指定的文件具有锁定或共享冲突。 |
EINVAL |
参数无效。 |
EMFILE |
打开的文件太多(必须打开指定的文件以确定它是否是可执行文件)。 |
ENOENT |
未找到文件或路径。 |
ENOEXEC |
指定的文件不是可执行文件,或者有无效的可执行文件格式。 |
ENOMEM |
没有足够的内存可用于执行更新进程;可用内存损坏;或存在无效的块,指示调用进程未正确分配。 |
有关这些和其他的返回代码的详细信息,请参阅 errno
、_doserrno
、_sys_errlist
和 _sys_nerr
。
备注
所有这些函数将加载并执行一个新进程,同时将一个指针数组传递给命令行参数,并将一个指针数组传递给环境设置。
_execve
和 _wexecve
将验证其参数。 如果出现以下情况,这些函数则会调用无效的参数处理程序,如参数验证中所述:
cmdname
为空指针,argv
是空指针或指向空数组的指针,- 数组包含空字符串作为第一个参数。
如果处理程序允许执行继续,这些函数会将 errno
设置为 EINVAL
并返回 -1。 不启动任何进程。
默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态。
要求
函数 | 必需的标头 | 可选标头 |
---|---|---|
_execve |
<process.h> | <errno.h> |
_wexecve |
<process.h> 或 <wchar.h> | <errno.h> |
有关兼容性的详细信息,请参阅 兼容性。
示例
请参阅 _exec
、_wexec
函数中的示例。
另请参阅
进程和环境控制
_exec
、_wexec
函数
abort
atexit
.- .
%>
_spawn
、_wspawn
函数
%>