We recommend using Visual Studio 2017

_execvpe, _wexecvpe


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at _execvpe, _wexecvpe.

Loads and runs new child processes.

System_CAPS_ICON_important.jpg Important

This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW.

intptr_t _execvpe(   
   const char *cmdname,  
   const char *const *argv,  
   const char *const *envp   
intptr_t _wexecvpe(   
   const wchar_t *cmdname,  
   const wchar_t *const *argv,  
   const wchar_t *const *envp   


Path of the file to execute.

Array of pointers to parameters.

Array of pointers to environment settings.

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 valueDescription
E2BIGThe space that's required for the arguments and environment settings exceeds 32 KB.
EACCESThe specified file has a locking or sharing violation.
EMFILEToo many files are open. (The specified file must be opened to determine whether it is executable.)
ENOENTThe file or path is not found.
ENOEXECThe specified file is not executable or has an invalid executable-file format.
ENOMEMNot enough memory is available to execute the new process; the available memory has been corrupted; or an invalid block exists, which indicates that the calling process was not allocated correctly.

For more information about these and other return codes, see errno, _doserrno, _sys_errlist, and _sys_nerr.

Each of these functions loads and executes a new process, and passes an array of pointers to command-line arguments and an array of pointers to environment settings. These functions use the PATH environment variable to find the file to execute.

The _execvpe functions validate their parameters. If the cmdname is a null pointer, or if argv is a null pointer, a pointer to an empty array, or a pointer to an array that contains an empty string as the first argument, these functions invoke the invalid parameter handler, as described in Parameter Validation. If execution is allowed to continue, these functions set errno to EINVAL and return -1. No process is launched.

FunctionRequired headerOptional header
_wexecvpe<process.h> or <wchar.h><errno.h>

For more compatibility information, see Compatibility.

See the example in _exec, _wexec Functions.

Process and Environment Control
_exec, _wexec Functions
exit, _Exit, _exit
_onexit, _onexit_m
_spawn, _wspawn Functions
system, _wsystem