This documentation is archived and is not being maintained.

_execl, _wexecl

Load and execute new child processes.

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


Path of file to be executed.
arg0, ... argn
List of pointers to parameters.

Return Value

If successful, these functions do not return to the calling process. A return value of –1 indicates an error, in which case the errno global variable is set.

errno value Description
E2BIG The space required for the arguments and environment settings exceeds 32 K.
EACCES The specified file has a locking or sharing violation.
EMFILE Too many files open (the specified file must be opened to determine whether it is executable).
ENOENT File or path not found.
ENOEXEC The specified file is not executable or has an invalid executable-file format.
ENOMEM Not enough memory is available to execute the new process; or the available memory has been corrupted; or an invalid block exists, indicating that the calling process was not allocated properly.


Each of these functions loads and executes a new process, passing each command-line argument as a separate parameter.


Function Required header Optional headers Compatibility
_execl <process.h> <errno.h> Win 98, Win Me, Win NT, Win 2000, Win XP
_wexecl <process.h> or <wchar.h> <errno.h> Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


See the example in _exec, _wexec Functions.

See Also

Process and Environment Control Routines | _exec, _wexec_Function Overview | abort | atexit | exit | _onexit | _spawn Function Overview | system | Run-Time Routines and .NET Framework Equivalents