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


_spawnve, _wspawnve

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

Важно!

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

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
    Режим выполнения для вызывающего процесса.

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

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

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

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

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

  • E2BIG
    Длина списка аргументов превышает 1024 байта.

  • EINVAL
    Недопустимый аргумент mode.

  • ENOENT
    Файл или путь не найден.

  • ENOEXEC
    Указанный файл не является исполняемым или имеет недопустимый формат исполняемого файла.

  • ENOMEM
    Недостаточно памяти для выполнения нового процесса.

Дополнительные сведения об этих и других кодах возврата см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.

Заметки

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

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

Требования

Подпрограмма

Обязательный заголовок

_spawnve

<stdio.h> или <process.h>

_wspawnve

<stdio.h> или <wchar.h>

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

Пример

См. пример в разделе Функции _spawn, _wspawn.

Эквивалент в .NET Framework

См. также

Ссылки

Управление процессами и средой

Функции _spawn, _wspawn

abort

atexit

Функции _exec, _wexec

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem