_execve, _wexecve
加载和执行新的子进程。
重要
此 API 不能在运行时的窗口执行的应用程序。有关更多信息,请参见 CRT 函数不支持与 /ZW。
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 |
使用指定的文件不可执行文件也没有无效可执行 (pe) 文件格式。 |
ENOMEM |
没有足够的内存可用于执行更新过程;可用内存损坏;无效或块存在,指示调用过程不正确分配。 |
有关这些属性和其他的更多信息返回代码示例,请参见 _doserrno、errno、_sys_errlist 和_sys_nerr。
备注
这些功能中的每一个加载并执行更新过程,通过一组指向命令行参数和一组指向环境设置。
_execve 和 _wexecve 验证其参数。 如果 cmdname 是 null 指针,或者,如果 argv 是 null 指针,为空数组的指针,或者,如果数组包含一个空字符串作为第一个参数,这些函数调用的参数无效处理程序如 参数验证所述。 如果执行允许继续,对 EINVAL 的这些功能集 errno 并且返回 -1。 不保存进程中启动。
要求
功能 |
必需的标头 |
选项标头 |
---|---|---|
_execve |
<process.h> |
<errno.h> |
_wexecve |
<process.h> 或 <wchar.h> |
<errno.h> |
有关更多兼容性信息,请参见中介绍的 兼容性。
示例
在参见 _exec,_wexec 功能的示例。