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

Одним из членов рабочей группы Ada Language Bindings было отмечено, что принятое в языке Ada семейство POSIX-примитивов Start_Process использует м ножество действий (задавае м ое инициаторо м вызова функции), чтобы изменить общепринятую семантику функций fork () /exec с целью наследования файловых дескрипторов довольно гибким способом, и пока никаких проблем не возникало, поскольку все бремя определения, как достичь конечного преобразования файловых дескрипторов, полностью лежит на приложении. Более того, хотя интерфейс, связанный с действиями над файлами, выглядит устрашающе сложным, в действительности он довольно прост для реализации либо в библиотеке, либо в ядре.

Будущие направления

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

Смотри также

close (), dup (), open (), posix_spawn (), posix_spawn_file_actions_adddup2 (),

posix_spawn_file_actions_destroy (), posix_spawnp (), том Base Definitions стандарта IEEE Std 1003.1-2001, < spawn. h>.

Последовательность внесения изменений

Функции впервые реализованы в выпуске Issue 6, основание м послужил стандарт IEEEStd 1003.1d-1999.

При м еняется интерпретация IEEE PASC Interpretation 1003.1 #105, со г ласно которой в раздел «Описание» было внесено дополнение о то м, что строка, адресуе м ал пара м етро м path, копируется функцией posix_spawn_file_actions_addopen ().


posix_spawn_file_actions_adddup2

Имя

posix_spawn_file_actions_adddup2— функция внесения в объект действий над файла м и действия dup2 (ADVANCED REALTIME).

Синопсис

SPN #include

int posix_spawn_file_actions_adddup2 (

posix_spawn_file_actions_t * file_aсtions, int fildes, int newfildes);

Описание

Функция posix_spawn_file_actions_adddup2() добавляет в объект, адресуе м ый пара м етро м file_actions, действие dup2(), в результате чего при порождении нового процесса с использование м объекта действий файловый дескриптор fildes дублируется в пара м етр newfildes (как если бы была вызвана функция dup2 ( fildes, newfildes)).

Объект действий над файла м и порожденного процесса определяется в описании функции posix_spawn_file_actions_addclose().

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

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

Ошибки

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

[EBADF] значение, заданное пара м етро м fildes или newfildes, отрицательно либо больше или равно значению {0PEN_MAX};

[EN0MEM] для расширения содержи м ого объекта действий над файла