_spawnv
, _wspawnv
Создает и выполняет новый процесс.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
intptr_t _spawnv(
int mode,
const char *cmdname,
const char *const *argv
);
intptr_t _wspawnv(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv
);
Параметры
mode
Режим выполнения для вызывающего процесса.
cmdname
Путь к выполняемому файлу.
argv
Массив указателей на аргументы. Аргумент argv[0]
обычно является указателем на путь в реальном режиме или имя программы в защищенном режиме, а argv[1]
также через argv[n]
указатели на строки символов, формируя новый список аргументов. Аргумент argv[n+1]
должен быть указателем NULL
, чтобы пометить конец списка аргументов.
Возвращаемое значение
Возвращаемое значение синхронных функций _spawnv
или _wspawnv
(для параметра _P_WAIT
указано значение mode
) — это состояние завершения нового процесса. Возвращаемое значение асинхронной функции _spawnv
или _wspawnv
(для параметра_P_NOWAIT
указано значение _P_NOWAITO
или mode
) — это дескриптор процесса. Состояние выхода имеет значение 0, если процесс завершился обычным образом. Для состояния выхода можно задать ненулевое значение, если порожденный процесс специально вызывает процедуру exit
с ненулевым аргументом. Если новый процесс явно не установил положительное состояние выхода, то положительное состояние выхода указывает на ненормальный выход с прерыванием или прерыванием. Возвращаемое значение -1 указывает на ошибку (новый процесс не запущен). В этом случае errno
имеет одно из следующих значений.
значение | Описание |
---|---|
E2BIG |
Длина списка аргументов превышает 1024 байта. |
EINVAL |
Недопустимый аргументmode . |
ENOENT |
Файл или путь не найден. |
ENOEXEC |
Указанный файл не является исполняемым или имеет недопустимый формат исполняемого файла. |
ENOMEM |
Недостаточно памяти для выполнения нового процесса. |
Дополнительные сведения об этих и других кодах возврата см. в разделе errno
, _doserrno
и _sys_nerr
_sys_errlist
.
Замечания
Каждая из этих функций создает и выполняет новый процесс, передавая ему массив указателей на аргументы командной строки.
Эти функции проверяют свои параметры. Если указатель cmdname
argv
имеет значение NULL или argv
указывает на пустую строку или пустую строку, argv[0]
вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno
значение EINVAL
и возвращают -1. Нет порожденных новых процессов.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Требования
Маршрут | Обязательный заголовок |
---|---|
_spawnv |
<stdio.h> или <process.h> |
_wspawnv |
<stdio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
См. пример в _spawn
функциях. _wspawn
См. также
Управление процессами и средой
_spawn
, _wspawn
функции
abort
atexit
_exec
, _wexec
функции
exit
, , _Exit
_exit
_flushall
_getmbcp
_onexit
, _onexit_m
_setmbcp
system
, _wsystem