ConnectFlags(), ConnectFlags_r()

Модифицировать флаги соединения

Прототип:

#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:

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

ConnectFlags()
Предыдущее значение флагов, связанных с соединением. Если произошла ошибка, функция возвращает -1 и устанавливает errno.
ConnectFlags_r()
Предыдущее значение флагов, связанных с соединением. Данная функция НЕ устанавливает errno. Если возникла ошибка, возвращается отрицательное значение из списка ошибок.

Коды ошибок:

EBADF
coid не является корректным идентификатором соединения для процесса.
ESRCH
Идентификатор процесса некорректен.

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

ЗОСРВ «Нейтрино»

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

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

ConnectAttach(), fcntl()




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