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


_spawnlpe, _wspawnlpe

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

Важно!

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

intptr_t _spawnlpe(
   int mode,
   const char *cmdname,
   const char *arg0,
   const char *arg1,
   ... const char *argn,
   NULL,
   const char *const *envp 
);
intptr_t _wspawnlpe(
   int mode,
   const wchar_t *cmdname,
   const wchar_t *arg0,
   const wchar_t *arg1,
   ... const wchar_t *argn,
   NULL,
   const wchar_t *const *envp 
);

Параметры

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

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

  • arg0, arg1, ... argn
    Список указателей на аргументы. Аргумент arg0 обычно указатель на cmdname. Аргументы от arg1 до argn являются указателями на символьные строки, которые формируют новый список аргументов. После argn должно следовать указатель NULL, отмечающий конец списка аргументов.

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

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

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

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

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

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

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

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

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

Заметки

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

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

Требования

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

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

_spawnlpe

<process.h>

_wspawnlpe

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

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

Пример

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

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

См. также

Ссылки

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

Функции _spawn, _wspawn

abort

atexit

Функции _exec, _wexec

exit, _exit

_flushall

_getmbcp

_onexit, _onexit_m

_setmbcp

system, _wsystem