Share via


_execl、_wexecl

加载和执行新的子进程。

重要

此 API 不能用于在 Windows 运行时中执行的应用程序。有关详细信息,请参见 CRT functions not supported with /ZW(CRT 函数不支持使用/ZW)。

intptr_t _execl( 
   const char *cmdname,
   const char *arg0,
   ... const char *argn,
   NULL 
);
intptr_t _wexecl(
   const wchar_t *cmdname,
   const wchar_t *arg0,
   ... const wchar_t *argn,
   NULL 
);

参数

  • cmdname
    要执行的文件的路径。

  • arg0, ...argn
    指向参数的指针列表。

返回值

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

errno 值

描述

E2BIG

参数和环境设置所需的空间超过 32 KB。

EACCES

指定的文件具有锁定或共享冲突。

EINVAL

无效参数 (一个或多个参数是一个空指针或空字符串)。

EMFILE

打开的文件太多 (必须打开指定的文件以确定它是否是可执行文件)。

ENOENT

未找到文件或路径。

ENOEXEC

指定的文件不是可执行文件或者有无效的可执行文件格式。

ENOMEM

没有足够的内存可用于执行更新进程;可用内存损坏;或存在无效的块,指示调用进程未正确分配。

备注

这些函数中的每一个加载并执行新进程,通过每个命令行参数作为单独的参数。 第一个参数是命令或可执行文件,文件名,第二个参数应与第一个相同。 在执行进程中,它是 argv[0] 。 第三个参数是第一个参数,argv[1]进程正在执行。

_execl 函数验证其参数. 如果 cmdname 或 arg0 是 null 指针或空字符串,这些函数调用的参数无效处理程序如 参数验证所述(如果执行允许继续,这些函数将 errno设置为 EINVAL 并且返回 -1)。 不执行任何新进程。

要求

功能

必需的标头

可选标头

_execl

<process.h>

<errno.h>

_wexecl

<process.h> 或 <wchar.h>

<errno.h>

有关兼容性的更多信息,请参见兼容性

示例

在参见 _exec、_wexec 函数中的示例。

.NET Framework 等效项

请参见

参考

进程和环境控制

_exec、_wexec 函数

abort

atexit

exit、_exit

_onexit、_onexit_m

_spawn、_wspawn 函数

system、_wsystem