_spawnve, _wspawnve
Creates and executes a new process.
intptr_t _spawnve(
int mode,
const char *cmdname,
const char *const *argv,
const char *const *envp
);
intptr_t _wspawnve(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv,
const wchar_t *const *envp
);
Parameters
- mode
-
Execution mode for a calling process.
- cmdname
-
Path of the file to be executed.
- argv
-
Array of pointers to arguments.
- envp
-
Array of pointers to environment settings.
The return value from a synchronous _spawnve or _wspawnve (_P_WAIT specified for mode) is the exit status of the new process. The return value from an asynchronous _spawnve or _wspawnve (_P_NOWAIT or _P_NOWAITO specified for mode) is the process handle. The exit status is 0 if the process terminated normally. You can set the exit status to a nonzero value if the spawned process specifically calls the exit routine with a nonzero argument. If the new process did not explicitly set a positive exit status, a positive exit status indicates an abnormal exit with an abort or an interrupt. A return value of –1 indicates an error (the new process is not started). In this case, errno is set to one of the following values.
- E2BIG
-
Argument list exceeds 1024 bytes.
- EINVAL
-
mode argument is invalid.
- ENOENT
-
File or path is not found.
- ENOEXEC
-
Specified file is not executable or has invalid executable-file format.
- ENOMEM
-
Not enough memory is available to execute the new process.
For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.
Each of these functions creates and executes a new process, passing an array of pointers to command-line arguments and an array of pointers to environment settings.
These functions validate their parameters. If either cmdname or argv is a null pointer, or if argv points to null pointer, or argv[0] is an empty string, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, these functions set errno to EINVAL, and return -1. No new process is spawned.
| Routine | Required header | Compatibility |
|---|---|---|
| _spawnve | <stdio.h> or <process.h> | Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
| _wspawnve | <stdio.h> or <wchar.h> | Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 |
For more compatibility information, see Compatibility in the Introduction.
See the example in _spawn, _wspawn Functions.