posix_spawn_file_actions_addopen()

Добавить или удалить действие «открыть файл» в объект действий над файлами

Прототип:

#include <posix_spawn_file_actions.h>
int posix_spawn_file_actions_addopen( posix_spawn_file_actions_t *_Restrict fact_p,
int new_fd,
const char *_Restrict path,
int oflags,
mode_t omode );

Аргументы:

fact_p
Действие файла для добавления или удаления в объекте действий файла порожденного процесса.
new_fd
Количество обновляемых файловых дескрипторов
path
Имя открываемого файла. Строка, описываемая path, копируется функцией posix_spawn_file_actions_addopen().
oflags
Флаги, определяющие статус и режимы доступа к файлу.
omode
Объект типа mode_t, определяющий режим доступа, используемый для вновь созданного файла. Дополнительные сведения см. в разделах «Разрешения на доступ» и «O_CREATE» в документации по struct stat.

Библиотека:

libc

Описание:

Функция posix_spawn_file_actions_addopen() добавляет действие открытия к объекту, на который ссылается fact_p, что вызовет открытие файла с именем path (как если бы open( path, oflag, mode ) был вызван, а возвращенный файловый дескриптор, если он не равен fd, был изменен на fd) при порождении нового процесса с использованием этого объекта файловых действий. Если fd уже был дескриптором открытого файла, он будет закрыт до того, как будет открыт новый файл.

Для получения подробной информации о функциях открытия и закрытия см. функции posix_spawn_file_actions_addopen() и posix_spawn_file_actions_addclose().

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

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

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

POSIX 1003.1 Realtime Signals Extension

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

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

struct stat, posix_spawn(), posix_spawn_file_actions_addclose(), posix_spawn_file_actions_adddup2(), 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 системной библиотеки