Поделиться через


_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