Параллельное и распределенное программирование на С++ - Хьюз Камерон
Шрифт:
Интервал:
Закладка:
Синопсис
SPN #include <spawn.h>
int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *file___actions) ;
int posix_spawn_file_actions_init (posix_spawn_file_actions_t *file_actions);
Описание
Функция posix_spawn_file_actions_destroy() предназначена для разрушения объекта, адресуе м о г о пара м етро м file_actions; после ее при м енения объект становится неинициализированны м. В конкретной реализации функция posix_spawn_file_actions_destroy() м ожет устанавливать объект, адресуе м ый пара м етро м file_actions, равны м недействительно м у значению. Разрушенный объект действий над файла м и м ожно снова инициализировать с по м о щ ью функции posix_spawn_file_actions_init(); результаты ссылки на этот объект после е г о разрушения не определены.
Функция posix_spawn_file_actions_init () используется для инициализации объекта, адресуемого параметром file_actions; после ее при м енения объект не будет содержать никаких действий, предназначенных для выполнения над файла м и при вызове функций posix_spawn () или posix_spawnp ().
Объект действий над файла м и порожденно г о процесса определяется в описании функции posix_spawn_file_actions_addclose(). Результат инициализации уже инициализированно г о объекта действий над файла м и не определен.
Возвращаемые значения
При успешно м завершении эти функции возвра щ ают нулевое значение; в противно м случае — код ошибки, обозначаю щ ий ее характер.
Ошибки
Функция posix_spawn_file_actions_init () завершится неудачно, если:
[EN0MEM] для и ниц и ализаци и объекта действий над файла м и недостаточно су щ ествую щ ей па м яти.
Функция posix_spawn_file_actions_destroy() м ожет завершиться неудачно, если:
[EINVAL]
значение, заданное пара м етро м file_actions, недопусти м о.
Примеры
Отсутствуют.
Замечания по использованию
Эти функции являются частью опции Spawn и м огут быть не представлены во всех реализациях.
Логическое обоснование
С м отрите раздел «Логическое обоснование» в описании функции posix_spawn_file_actions_addclose().
Будущие направления
Отсутствуют.
Смотри также
posix_spawn (), posix_spawnp (), том Base Definitions стандарта IEEE Std 1003.1-2001, <spawn.h>.
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 6, основание м послужил стандарт IEEE Std 1003.1d-1999.
В разделе «Синопсис» включение заголовка <sys/types.h> больше не требуется.
posix_spawnattr_destroy, posix_spawnattr_init
Имя
posix_spawnattr_destroy, posix_spawnattr_init— функции разрушения и инициализации объекта атрибутов порожденно г о процесса (ADVANCED REALTIME).
Синопсис
SPN #include <spawn.h>
int posix_spawnattr_destroy (posix_spawnattr_t *attr); int posix_spawnattr_init (posix_spawnattr_t *attr);
Описание
Функция posix_spawnattr_destroy() предназначена для разрушения объекта атрибутов порожденного процесса. Разрушенный объект атрибутов, адресуемый параметром attr, можно снова инициализировать с помощью функции posix_spawnattr_init (); результаты ссылки на этот объект после его разрушения не определены. В конкретной реализации функция posix_spawnattr_destroy() может устанавливать объект, адресуемый параметром attr, равным некоторому недействительному значению.
Функция posix_spawnattr_init() служит для инициализации объекта атрибутов порожденного процесса, адресуемого параметром attr, значениями, действующими по умолчанию для всех отдельных атрибутов, используемых конкретной реализацией. Результат вызова функции posix_spawnattr_init () не определен, если заданный параметром attr объект атрибутов уже инициализирован.
Объект атрибутов порожденного процесса имеет тип posix_spawnattr_t (определен в заголовке <spawn.h>) и используется для задания наследования атрибутов процесса при выполнении операции порождения процесса. Для типа 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, представляющего объект атрибутов порожденного процесса, и соответствующих функций, которые позволяют инициализировать или разрушить этот объект атрибутов, а также установить или получить значение каждого отдельного атрибута. Несмотря на то что новый объектно-ориентированный интерфейс более сложен, чем исходнал структура, его проще использовать, легче наращивать и реализовывать.
Будущие направления
Отсутствуют.
Смотри также
posix_spawn (), posix_spawnattr_getsigdefault (), posix_spawnattr_getflags (), posix_spawnattr_getpgroup (), posix_spawnattr_getschedparam(), posix_spawnattr_getschedpolicy (), posix_spawnattr_getsigmask(),posix_spawnattr_setsigdefault(), posix_spawnattr_setflags(), posix_spawnattr_setpgroup(), posix_spawnattr_setsigmask(), posix_spawnattr_setschedpolicy(), posix_spawnattr_setschedparam (), posix_spawnp (), то м Base Definitions стан д арта IEEEStd 1003.1-2001, <spawn.h>.
Последовательность внесения изменений
Функции впервые реализованы в выпуске Issue 6, основанием послужил стандарт IEEE Std 1003.1d-1999.
При м еняется интерпретация IЕЕЕ PASC Interpretation 1003.1 #106, в которой отмечается, что результат инициализации уже инициализированного объекта атрибутов не определен.