Модифицировать флаги соединения
#include <sys/neutrino.h>
int ConnectFlags( pid_t pid,
int coid,
unsigned mask,
unsigned bits );
int ConnectFlags_r( pid_t pid,
int coid,
unsigned mask,
unsigned bits );
- pid
- Идентификатор процесса, которому принадлежит идентификатор соединения, или
0
для текущего процесса.
- coid
- Идентификатор соединения, чьи флаги нужно модифицировать.
- mask
- Битовая маска, определяющая, какие биты флагов будут изменены.
- bits
- Новое значение флагов. В настоящий момент определены следующие флаги:
- _NTO_COF_CLOEXEC
- закрыть соединение, если процесс вызывает функцию exec*() для запуска нового процесса.
libc
Вызовы ядра ConnectFlags() и ConnectFlags_r() модифицируют флаги, связанные с указанным соединением. Эти вызовы ядра не блокируются.
Данные функции идентичны за исключением способа возврата ошибок.
Необходимо инициализировать биты, соответствующие флагу в аргументах mask и bits:
- Если бит в mask равен
1
, а бит в bits равен 1
, функция устанавливает флаг. - Если бит в mask равен
1
, а бит в bits равен 0
, функция сбрасывает флаг. - Если бит в mask равен
0
, функция не меняет текущее значение флага.
- ConnectFlags()
- Предыдущее значение флагов, связанных с соединением. Если произошла ошибка, функция возвращает
-1
и устанавливает errno.
- ConnectFlags_r()
- Предыдущее значение флагов, связанных с соединением. Данная функция НЕ устанавливает errno. Если возникла ошибка, возвращается отрицательное значение из списка ошибок.
- EBADF
- coid не является корректным идентификатором соединения для процесса.
- ESRCH
- Идентификатор процесса некорректен.
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Да
- В потоке
- Да
ConnectAttach(), fcntl()
Предыдущий раздел: Описание API системной библиотеки