_execlpe、_wexeclpe
加载和执行新的子进程。
重要
此 API 不能用于在 Windows 运行时中执行的应用程序。有关详细信息,请参见 CRT functions not supported with /ZW(CRT 函数不支持使用/ZW)。
intptr_t _execlpe(
const char *cmdname,
const char *arg0,
... const char *argn,
NULL,
const char *const *envp
);
intptr_t _wexeclpe(
const wchar_t *cmdname,
const wchar_t *arg0,
... const wchar_t *argn,
NULL,
const wchar_t *const *envp
);
参数
cmdname
要执行的文件的路径。arg0, ...argn
指向参数的指针数组。envp
指向环境设置的指针的数组。
返回值
如果成功,这些函数不返回到调用进程。 返回值 –1 表示错误,在此情况下将会设置 errno 全局变量。
errno 值 |
描述 |
---|---|
E2BIG |
参数和环境设置所需的空间超过 32 KB。 |
EACCES |
指定的文件具有锁定或共享冲突。 |
EINVAL |
无效参数。 |
EMFILE |
打开的文件太多 (必须打开指定的文件以确定它是否是可执行文件)。 |
ENOENT |
未找到文件或路径。 |
ENOEXEC |
指定的文件不是可执行文件或者有无效的可执行文件格式。 |
ENOMEM |
没有足够的内存可用于执行更新进程;可用内存损坏;或存在无效的块,指示调用进程未正确分配。 |
有关这些属性和其他的更多信息返回代码示例,请参见 _doserrno、errno、_sys_errlist 和 _sys_nerr。
备注
每一个函数加载并且执行一个新的进程,把每一个命令行的参数作为独立的参数进行传递,并且给环境设置传递一个数组指针。 这些函数使用 PATH 环境变量查找要执行的文件。
_execlpe 函数验证其参数. 如果 cmdname 或 arg0 为空指针或空字符串,这些函数调用无效参数处理程序如 参数验证所述。 如果允许执行继续,则这些功能将 EINVAL 设置为 errno 并返回 -1。 不启动任何新进程。
要求
功能 |
必需的标头 |
可选标头 |
---|---|---|
_execlpe |
<process.h> |
<errno.h> |
_wexeclpe |
<process.h> 或<wchar.h> |
<errno.h> |
有关兼容性的更多信息,请参见兼容性。
示例
在参见 _exec、_wexec 函数中的示例。