_execv, _wexecv
Loads and executes new child processes.
intptr_t _execv( const char *cmdname, const char *const *argv ); intptr_t _wexecv( const wchar_t *cmdname, const wchar_t *const *argv );
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 KB. |
EACCES | The specified file has a locking or sharing violation. |
EINVAL | Invalid parameter. |
EMFILE | Too many files open (the specified file must be opened to determine whether it is executable). |
ENOENT | The 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; the available memory has been corrupted; or an invalid block exists, indicating that the calling process was not allocated properly. |
For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Each of these functions loads and executes a new process, passing an array of pointers to command-line arguments.
The _execv functions validate their parameters. If cmdname is a null pointer, or if argv is a null pointer, pointer to an empty array, or if the array contains an empty string as the first argument, the _execv 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.
Function | Required header | Optional header |
|---|---|---|
_execv | <process.h> | <errno.h> |
_wexecv | <process.h> or <wchar.h> | <errno.h> |
For more compatibility information, see Compatibility in the Introduction.
See the example in _exec, _wexec Functions.