posix_spawn_file_actions_adddup2()

Внести действие dup2() в объект действий над файлами

Прототип:

#include <posix_spawn_file_actions.h>
int posix_spawn_file_actions_adddup2( posix_spawn_file_actions_t *fact_p,
int fd,
int new_fd );

Аргументы:

fact_p
Действие файла для добавления или удаления в объекте действий файла порожденного процесса.
fd
Количество дескрипторов файлов в массиве.
new_fd
Дескриптор файла fd, который был дублирован.

Библиотека:

libc

Описание:

Функция posix_spawn_file_actions_adddup2() добавляет действие dup2() к объекту, на который ссылается fact_p, что вызывает дублирование файлового дескриптора fd как new_fd (как если бы вызов dup2( fd, new_fd )) когда новый процесс порождается с использованием этого объекта файловых действий. Объект действий файла порожденного процесса определен в posix_spawn_file_actions_addclose().

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

EBADF
Значение, указанное в fd или new_fd, отрицательное или больше или равно {OPEN_MAX}.
EINVAL
Был задан недопустимый параметр. Значение, указанное в действиях с файлами, недопустимо. Не считается ошибкой для аргумента fd, переданного функции posix_spawn_file_actions_adddup2() для указания файлового дескриптора, для которого указанная операция не могла быть выполнена во время вызова. Любая такая ошибка будет обнаружена, когда связанный с файлом объект действий будет позже использован во время операции posix_spawn() или posix_spawnp().
ENOMEM
Если действие не может быть добавлено к объекту действий с файлом или недостаточно памяти для добавления к объекту действий файла порожденного процесса.
EOK
Успешное завершение.

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

POSIX 1003.1 Realtime Signals Extension

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

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

dup2(), posix_spawn(), posix_spawn_file_actions_addclose(), 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_setsigmask(), posix_spawnattr_setstackmax(), posix_spawnattr_setxflags(), posix_spawnp()




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