_spawnl, _wspawnl
Создает и выполняет новый процесс.
Важно!
Этот API невозможно использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.
intptr_t _spawnl(
int mode,
const char *cmdname,
const char *arg0,
const char *arg1,
... const char *argn,
NULL
);
intptr_t _wspawnl(
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, отмечающий конец списка аргументов.
Возвращаемое значение
Возвращаемое значение синхронного _spawnl или _wspawnl (_P_WAIT указано для mode) — статус завершения нового процесса. Возвращаемое значение асинхронного _spawnl или _wspawnl (_P_NOWAIT или _P_NOWAITO указаны для mode) — дескриптор процесса. Состояние выхода имеет значение 0, если процесс завершился обычным образом. Для состояния выхода можно задать ненулевое значение, если порожденный процесс специально вызывает процедуру exit с ненулевым аргументом. Если новый процесс не задал положительное состояние выхода в явном виде, положительное состояние выхода указывает на аварийный выход по отмене или прерыванию. Возвращаемое значение –1 указывает на ошибку (новый процесс не запущен). В этом случае errno имеет одно из следующих значений.
E2BIG
Длина списка аргументов превышает 1024 байта.EINVAL
Недопустимый аргумент mode.ENOENT
Файл или путь не найден.ENOEXEC
Указанный файл не является исполняемым или имеет недопустимый формат исполняемого файла.ENOMEM
Недостаточно памяти для выполнения нового процесса.
Дополнительные сведения об этих и других кодах возврата см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Эти функции проверяют свои параметры. Если cmdname или arg0 является указателем на null или пустой строкой, вызываются обработчик недопустимого параметра, как описано в Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают -1. Нет порожденных новых процессов.
Заметки
Каждая из этих функций создает и выполняет новый процесс, передавая каждый аргумент командной строки в виде отдельного параметра.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_spawnl |
<process.h> |
_wspawnl |
<stdio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
См. пример в разделе Функции _spawn, _wspawn.