posix_spawnattr_init()

Инициализировать объект атрибутов порожденного процесса

Прототип:

#include <posix_spawnattr.h>
int posix_spawnattr_init( posix_spawnattr_t *attrp );

Аргументы:

attrp
Функция posix_spawnattr_init() инициализирует объект атрибутов порожденного процесса attrp со значением по умолчанию для всех отдельных атрибутов, используемых реализацией. Результаты будут не определенными, если posix_spawnattr_init() вызывается с указанием уже инициализированного объекта атрибутов attrp. Объект атрибутов порождения имеет тип posix_spawnattr_t (определен в <spawn.h>) и используется для определения наследуемых атрибутов процесса в операции порождения. IEEE Std 1003.1-2001 не определяет операторы сравнения или присваивания для типа posix_spawnattr_t.

Библиотека:

libc

Описание:

Имеется возможность повторно инициализировать уничтоженный объект атрибутов attrp, используя функцию posix_spawnattr_init(). Результаты обращения к объекту после его уничтожения не определены. Реализация может привести к тому, что posix_spawnattr_destroy() установит для объекта, на который ссылается attr, недопустимое значение.

Функция posix_spawnattr_init() инициализирует объект атрибутов порожденного процесса attrp со значением по умолчанию для всех отдельных атрибутов, используемых реализацией. Результаты будут не определенными, если posix_spawnattr_init() вызывается с указанием уже инициализированного объекта атрибутов attrp. Объект атрибутов порождения имеет тип posix_spawnattr_t (определен в <spawn.h>) и используется для определения наследуемых атрибутов процесса в операции порождения. IEEE Std 1003.1-2001 не определяет операторы сравнения или присваивания для типа posix_spawnattr_t.

В каждой реализации описываются используемые ею отдельные атрибуты и их значения по умолчанию, если только эти значения не определены стандартом IEEE Std 1003.1-2001. Атрибуты, не определенные стандартом IEEE Std 1003.1-2001, их значения по умолчанию и имена связанных функций для получения и установки значений этих атрибутов определяются реализацией. Результирующий объект атрибутов порожденного процесса (возможно, измененный путем установки значений отдельных атрибутов) используется для изменения поведения posix_spawn() или posix_spawnp().

После того, как объект атрибутов порождения был использован для порождения процесса вызовом posix_spawn() или posix_spawnp(), любая функция, влияющая на объект атрибутов (включая уничтожение), не влияет ни на один процесс, который был порожден этим способом.


Note: В POSIX указано, что результаты не определены при повторной инициализации уже инициализированного объекта posix_spawnattr_t. Реализация ЗОСРВ «Нейтрино» определяет данное поведение как идентичное случаю, когда предыдущий объект уничтожается, а затем повторно инициализируется, то есть можно безопасно повторно инициализировать уже инициализированный объект posix_spawnattr_t; однако повторная инициализацию объекта posix_spawnattr_t без промежуточного уничтожения объекта не поддерживается. Повторные вызовы posix_spawnattr_init() с одним и тем же объектом posix_spawnattr_t могут привести к утечке памяти.

Функция posix_spawnattr_destroy() делает posix_spawnattr_t непригодным для использования. Перед повторным использованием объекта его необходимо инициализировать с помощью posix_spawnattr_init(), что включает в себя вызов posix_spawnattr_destroy() для уже уничтоженного объекта.

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

EINVAL
Было задано недопустимое значение параметра.
EOK
Успешное завершение.

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

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_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_setsigmask(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags(), posix_spawnp()




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