Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
_execl, _wexecl

_execl, _wexecl

Visual Studio 6.0

Load and execute new child processes.

int _execl( const char *cmdname, const char *arg0, ... const char *argn, NULL );

int _wexecl( const wchar_t *cmdname, const wchar_t *arg0, ... const wchar_t *argn, NULL );

Function Required Header Optional Headers Compatibility
_execl <process.h> <errno.h> Win 95, Win NT
_wexecl <process.h> or <wchar.h> <errno.h> Win NT

For additional compatibility information, see Compatibility in the Introduction.


LIBC.LIB Single thread static library, retail version
LIBCMT.LIB Multithread static library, retail version
MSVCRT.LIB Import library for MSVCRT.DLL, retail version

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 32K.
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.



Path of file to be executed

arg0, ... argn

List of pointers to parameters


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


/* EXEC.C illustrates the different versions of exec including:
 *      _execl          _execle          _execlp          _execlpe
 *      _execv          _execve          _execvp          _execvpe
 * Although EXEC.C can exec any program, you can verify how
 * different versions handle arguments and environment by
 * compiling and specifying the sample program ARGS.C. See
 * SPAWN.C for examples of the similar spawn functions.

#include <stdio.h>
#include <conio.h>
#include <process.h>

char *my_env[] =                /* Environment for exec?e */
   "THIS=environment will be",
   "PASSED=to new process by",
   "the EXEC=functions",

void main()
   char *args[4], prog[80];
   int ch;

   printf( "Enter name of program to exec: " );
   gets( prog );
   printf( " 1. _execl  2. _execle  3. _execlp  4. _execlpe\n" );
   printf( " 5. _execv  6. _execve  7. _execvp  8. _execvpe\n" );
   printf( "Type a number from 1 to 8 (or 0 to quit): " );
   ch = _getche();
   if( (ch < '1') || (ch > '8') )
       exit( 1 );
   printf( "\n\n" );

   /* Arguments for _execv? */
   args[0] = prog;
   args[1] = "exec??";
   args[2] = "two";
   args[3] = NULL;

   switch( ch )
   case '1':
      _execl( prog, prog, "_execl", "two", NULL );
   case '2':
      _execle( prog, prog, "_execle", "two", NULL, my_env );
   case '3':
      _execlp( prog, prog, "_execlp", "two", NULL );
   case '4':
      _execlpe( prog, prog, "_execlpe", "two", NULL, my_env );
   case '5':
      _execv( prog, args );
   case '6':
      _execve( prog, args, my_env );
   case '7':
      _execvp( prog, args );
   case '8':
      _execvpe( prog, args, my_env );

   /* This point is reached only if exec fails. */
   printf( "\nProcess was not execed." );
   exit( 0 );

Process and Environment Control Routines_exec, _wexec_Function Overview

See Also   abort, atexit, exit, _onexit, _spawn Function Overview, system

© 2015 Microsoft