Параллельное и распределенное программирование на С++ (Хьюз, Хьюз) - страница 384

Объект атрибутов порожденного процесса имеет тип posix_spawnattr_t (определен в заголовке ) и используется для задания наследования атрибутов процесса при выполнении операции порождения процесса. Для типа posix_spawnattr_t операторы сравнения и присваивания стандарт IEEE Std 1003.1-2001 не определяет.

Для каждой реализации должны быть описаны отдельные атрибуты, которые она использует, и их стандартные значения, если они не определены стандартом IEEE Std ЮОЗ.1-2001. Атрибуты, не определенные стандартом IEEE Std 1003.1-2001, их стандартные значения и имена соответствующих функций чтения и записи этих атрибутов определяются конкретной реализацией.

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

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

При успешно м завершении функции posix_spawnattr_destroy() и posix_spawnattr_init() возвра щ ают нулевое значение; в противно м случае — ко д ошибки, обозначаю щ ий ее характер.

Ошибки

Функция posix_spawnattr_init () завершится неудачно, если:

[ ENOMEM ] для инициализации объекта атрибутов недостаточно существующей памяти.

Функция posix_spawnattr_destroy () м ожет завершиться неудачно, если:

[EINVAL ] з н ачение, заданное пара м етро м attr, недопусти м о.

Примеры

Отсутствуют.

Замечания по использованию

Эти функции являются частью опции Spawn и м огут быть не представлены во всех реализациях.

Логическое обоснование

Исходный интерфейс, предложенный в стандарте IEEE Std 1003.1-2001, определял атрибуты, наследуемые при выполнении операции порождения процесса, в виде структуры. Чтобы иметь возможность выделить некоторые необязательные атрибуты в отдельные опции (например, атрибуты spawn-schedparamn spawn-schedpolicy относятся к опции Process Scheduling), а также с целью расширяемости и совместимости с более новыми POSIX-интерфейсами, для интерфейса атрибутов был изменен тип данных. Этот интерфейс в настоящее время состоит из типа posix_spawnattr_t, представляющего объект атрибутов порожденного процесса, и соответствующих функций, которые позволяют инициализировать или разрушить этот объект атрибутов, а также установить или получить значение каждого отдельного атрибута. Несмотря на то что новый объектно-ориентированный интерфейс более сложен, чем исходнал структура, его проще использовать, легче наращивать и реализовывать.