_spawnvp, _wspawnvp
Создает новый процесс и выполняет его.
Важно!
Этот API не может использоваться в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в статье Функции CRT, которые не поддерживаются с ключом /ZW.
intptr_t _spawnvp(
int mode,
const char *cmdname,
const char *const *argv
);
intptr_t _wspawnvp(
int mode,
const wchar_t *cmdname,
const wchar_t *const *argv
);
Параметры
mode
Режим выполнения вызова процесса.cmdname
Путь к выполняемому файлу.argv
Массив указателей на аргументы. Аргумент argv[0] обычно является указателем на путь в реальном режиме или на название программы в защищенном режиме, а argv[1] по argv[n] — указатели на символьные строки, формирующие новый список аргументов. Аргумент argv[n +1] должен быть указателем NULL, отмечающим конец списка аргументов.
Возвращаемое значение
Возвращаемое значение синхронного _spawnvp или _wspawnvp (_P_WAIT указано для mode) — статус завершения нового процесса. Возвращаемое значение асинхронного _spawnvp или _wspawnvp (_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, или argv — нулевой указатель, или если argv указывает на нулевой указатель, или argv[0] — пустая строка, то вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают -1. Нет порожденных новых процессов.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_spawnvp |
<stdio.h> или <process.h> |
_wspawnvp |
<stdio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
См. пример в разделе Функции _spawn, _wspawn.