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