posix_spawnp()

Создать процесс (используя имя исполняемого файла)

Прототип:

#include <sys/spawn.h>
/* If using C and gcc version 2.95, use: */
int posix_spawnp( pid_t *_Restrict pid,
const char *_Restrict file,
const posix_spawn_file_actions_t *file_actions,
const posix_spawnattr_t *_Restrict attrp,
char *const argv[],
char *const envp[] );
/* If using C++ and gcc higher than version 2.95, use: */
int posix_spawnp( pid_t *_Restrict pid,
const char *_Restrict file,
const posix_spawn_file_actions_t *file_actions,
const posix_spawnattr_t *_Restrict attrp,
char *const argv[_Restrict_arr],
char *const envp[_Restrict_arr] );

Аргументы:

argv
Указатель на вектор аргументов. Значение в argv[0] должно содержать имя файла загружаемой программы, но может иметь значение NULL, если аргументы не передаются. Последним элементом argv должен быть NULL указатель. Сам указатель argv не может иметь значение NULL.
attrp
Указатель на атрибуты создаваемого процесса. Если значение указателя attrp равно NULL, то используются значения по умолчанию.
envp
Указатель на массив указателей на символьные строки, определяющие переменную среды. Последним элементом envp должен быть NULL указатель. Каждый указатель в массиве характеризует строку вида:
переменная=значение
данный формат используется для определения переменной среды. Если значение envp равно NULL, то дочерний процесс наследует окружение родительского процесса.
file
Имя исполняемого файла. Параметр file для posix_spawnp() используется для создания пути, который идентифицирует файл образа нового процесса. Если параметр file содержит символ косой черты, параметр @ file используется в качестве пути к файлу образа нового процесса. В противном случае префикс пути path для этого файла получается путем поиска в каталогах, переданных в качестве переменной среды PATH (см. том «Базовые определения» стандарта IEEE Std 1003.1-2001, глава 8, Переменные окружения). Если эта переменная среды не определена, результаты поиска определяются на основе реализации.
file_actions
Параметр file_actions определяет действия с создаваемым файлом.
pid
Идентификатор процесса.

Библиотека:

libc

Описание:

Функция posix_spawnp() создает новый процесс (дочерний процесс) на основе имени исполняемого файла. Новый образ создается из обычного исполняемого файла. Функция posix_spawnp() может принимать имя исполняемого файла без указания полного пути к нему и производит его поиск.

Для получения дополнительной информации см. posix_spawn().

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

Идентификатор дочернего процесса. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.

Коды ошибок:

EINVAL
Для любого недопустимого параметра. Был предоставлен недопустимый аргумент или неправильно инициализированны объекты posix_spawnattr_t, posix_spawn_file_actions_t.
ENOENT
Аргумент file не может быть найден ни в одном из расположений,указанных в переменной окружения PATH.
EOK
Успешное завершение.
EIO
ENOMEM
errno
ETXTBSY
Данные статусы соответствуют posix_spawn().

Если в образ также включены модули адаптивного квотирования (Adaptive Partitioning), могут быть возвращены дополнительные коды ошибок:

EACCES
EEXIST
ENOMEM
Случаи завершения posix_spawnp() с ошибкой EINVAL
Данные статусы соответствуют posix_spawn().

Классификация:

POSIX 1003.1 RTS

Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

posix_spawn(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), posix_spawn_file_actions_addopen(), posix_spawn_file_actions_destroy(), posix_spawn_file_actions_init(), posix_spawnattr_addpartid(), posix_spawnattr_addpartition(), posix_spawnattr_destroy(), posix_spawnattr_getcred(), posix_spawnattr_getflags(), posix_spawnattr_getnode(), posix_spawnattr_getpartid(), posix_spawnattr_getpgroup(), posix_spawnattr_getrunmask(), posix_spawnattr_getschedparam(), posix_spawnattr_getschedpolicy(), posix_spawnattr_getsigdefault(), posix_spawnattr_getsigignore(), posix_spawnattr_getsigmask(), posix_spawnattr_getstackmax(), posix_spawnattr_getxflags(), posix_spawnattr_init(), posix_spawnattr_setcred(), posix_spawnattr_setflags(), posix_spawnattr_setnode(), posix_spawnattr_setpgroup(), posix_spawnattr_setschedparam(), posix_spawnattr_setrunmask(), posix_spawnattr_setschedpolicy(), posix_spawnattr_setsigdefault(), posix_spawnattr_setsigignore(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags()




Предыдущий раздел: Описание API системной библиотеки