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


_spawnvpe, _wspawnvpe

Создает и выполняет новый процесс.

Важно!

Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.

Синтаксис

intptr_t _spawnvpe(
   int mode,
   const char *cmdname,
   const char *const *argv,
   const char *const *envp
);
intptr_t _wspawnvpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *const *argv,
   const wchar_t *const *envp
);

Параметры

mode
Режим выполнения для вызывающего процесса

cmdname
Путь к выполняемому файлу

argv
Массив указателей на аргументы. Аргумент argv[0] обычно является указателем на путь в реальном режиме или имя программы в защищенном режиме, а argv[1] также через argv[n] указатели на строки символов, формируя новый список аргументов. Аргумент argv[n+1] должен быть указателем NULL , чтобы пометить конец списка аргументов.

envp
Массив указателей на параметры среды

Возвращаемое значение

Возвращаемое значение синхронных функций _spawnvpe или _wspawnvpe (для параметра _P_WAIT указано значение mode) — это состояние завершения нового процесса. Возвращаемое значение асинхронной функции _spawnvpe или _wspawnvpe (для параметра_P_NOWAIT указано значение _P_NOWAITO или mode) — это дескриптор процесса. Состояние выхода имеет значение 0, если процесс завершился обычным образом. Для состояния выхода можно задать ненулевое значение, если порожденный процесс специально вызывает процедуру exit с ненулевым аргументом. Если новый процесс явно не установил положительное состояние выхода, то положительное состояние выхода указывает на ненормальный выход с прерыванием или прерыванием. Возвращаемое значение -1 указывает на ошибку (новый процесс не запущен). В этом случае errno имеет одно из следующих значений:

значение Description
E2BIG Длина списка аргументов превышает 1024 байта.
EINVAL Недопустимый аргументmode .
ENOENT Файл или путь не найден.
ENOEXEC Указанный файл не является исполняемым или имеет недопустимый формат исполняемого файла.
ENOMEM Недостаточно памяти для выполнения нового процесса.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Каждая из этих функций создает и выполняет новый процесс, передавая ему массив указателей на аргументы командной строки и массив указателей на параметры среды. Для поиска выполняемого файла в таких функциях используется переменная среды PATH.

Эти функции проверяют свои параметры. Если указатель cmdnameargv имеет значение NULL или argv указывает на пустую строку или является пустой строкой, argv[0] вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVALи возвращают -1. Нет порожденных новых процессов.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок
_spawnvpe <stdio.h> или <process.h>
_wspawnvpe <stdio.h> или <wchar.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

См. пример в _spawnфункциях. _wspawn

См. также

abort
atexit
_exec, _wexec функции
exit, _Exit, _exit
_flushall
_getmbcp
_onexit, _onexit_m
_setmbcp
system, _wsystem