description | title | ms.date | api_name | api_location | api_type | topic_type | f1_keywords | helpviewer_keywords | ms.assetid | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Learn more about: _spawnve, _wspawnve |
_spawnve, _wspawnve |
4/2/2020 |
|
|
|
|
|
|
26d1713d-b551-4f21-a07b-e9891a2ae6cf |
Creates and executes a new process.
Important
This API cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported in Universal Windows Platform apps.
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
);
mode
Execution mode for a calling process.
cmdname
Path of the file to be executed.
argv
Array of pointers to arguments. The argument argv[0]
is usually a pointer to a path in real mode or to the program name in protected mode, and argv[1]
through argv[n]
are pointers to the character strings forming the new argument list. The argument argv[n+1]
must be a NULL
pointer to mark the end of the argument list.
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 didn't 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 isn't started). In this case, errno
is set to one of the following values.
Value | Description |
---|---|
E2BIG |
Argument list exceeds 1024 bytes. |
EINVAL |
mode argument is invalid. |
ENOENT |
File or path isn't found. |
ENOEXEC |
Specified file isn't 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 errno
, _doserrno
, _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.
By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.
Routine | Required header |
---|---|
_spawnve |
<stdio.h> or <process.h> |
_wspawnve |
<stdio.h> or <wchar.h> |
For more compatibility information, see Compatibility.
See the example in _spawn
, _wspawn
functions.
Process and environment control
_spawn
, _wspawn
functions
abort
atexit
_exec
, _wexec
functions
exit
, _Exit
, _exit
_flushall
_getmbcp
_onexit
, _onexit_m
_setmbcp
system
, _wsystem