_execvpe_wexecvpe

加载并运行新的子进程。

重要

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

语法

intptr_t _execvpe(
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
);
intptr_t _wexecvpe(
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp
);

参数

cmdname
要执行的文件的路径。

argv
指向参数的指针的数组。

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

返回值

如果成功,这些函数不返回到调用进程。 返回值 -1 表示错误,在此情况下将会设置 errno 全局变量。

errno 说明
E2BIG 自变量和环境设置所需的空间超过 32 KB。
EACCES 指定的文件具有锁定或共享冲突。
EMFILE 打开的文件太多。 (必须打开指定的文件以确定它是否是可执行文件。)
ENOENT 未找到文件或路径。
ENOEXEC 指定的文件不是可执行文件或者有无效的可执行文件格式。
ENOMEM 没有足够的内存可用于执行新进程;可用内存损坏;或存在无效块(这表明调用进程未进行正确分配)。

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

注解

其中每个函数都将加载并执行一个新进程,同时将一个指针数组传递给命令行自变量,并将一个指针数组传递给环境设置。 这些函数使用 PATH 环境变量查找要执行的文件。

_execvpe 函数将验证其参数。 如果出现以下情况,这些函数则会调用无效的参数处理程序,如参数验证中所述:

  • cmdname 为空指针,
  • argv 是空指针或指向空数组的指针,
  • 数组包含空字符串作为第一个参数。

如果处理程序允许执行继续,这些函数会将 errno 设置为 EINVAL 并返回 -1。 不启动任何进程。

默认情况下,此函数的全局状态范围限定为应用程序。 若要更改此行为,请参阅 CRT 中的全局状态

要求

功能 必需的标头 可选标头
_execvpe <process.h> <errno.h>
_wexecvpe <process.h> 或 <wchar.h> <errno.h>

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

示例

请参阅 _exec_wexec 函数中的示例。

另请参阅

进程和环境控制
_exec_wexec 函数
abort
atexit
exit_Exit_exit
_onexit_onexit_m
_spawn_wspawn 函数
system_wsystem