ConnectServerInfo(), ConnectServerInfo_r()

Получить информацию о соединении с сервером

Прототип:

#include <sys/neutrino.h>
int ConnectServerInfo( pid_t pid,
int coid,
struct _server_info *info );
int ConnectServerInfo_r( pid_t pid,
int coid,
struct _server_info *info );

Аргументы:

pid
Идентификатор процесса-сервера.
coid
Идентификатор соединения.
info
NULL или указатель на struct _server_info, в которой функция сможет разместить информацию о соединении.

Библиотека:

libc

Описание:

Вызовы ядра ConnectServerInfo() и ConnectServerInfo_r() получают информацию о соединении coid, которым владеет процесс pid, и размещает ее в структуре, на которую указывает info. Если процесс не имеет соединения coid, вызов начинает поиск следующих по значению идентификатора соединений и возвращается, если находит. В ином случае возвращается -1. Если необходимо проверить, какое соединение было найдено, следует сравнить возвращенное значение с запрашиваемым coid.

Данные функции идентичны за исключением способа возврата ошибок.

Если аргумент info равен NULL, ConnectServerInfo() игнорирует соединения с недоступными серверами и переходит к следующему coid. Если info не равно NULL, функция заполняет struct _server_info; для соединений с недоступными серверами она устанавливает бит _NTO_COF_DEAD в поле flags структуры.

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

ConnectServerInfo()
Соответствующий coid. Если возникла ошибка, функция возвращает -1 и устанавливает errno.
ConnectServerInfo_r()
Соответствующий coid. Данная функция НЕ устанавливает errno. Если возникла ошибка, функция возвращает отрицательное значение из списка ошибок.

Коды ошибок:

EFAULT
Возникла ошибка при попытке ядра получить доступ к предоставленным буферам.
EINVAL
Процесс pid не имеет соединения, идентификатор которого больше или равен coid.
ESRCH
Процесс, определяемый pid, не существует.

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

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

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

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

struct _server_info, asyncmsg_connect_attach(), ConnectAttach(), ConnectClientInfo(), MsgInfo(), MsgReceivev(), ND_NODE_CMP(), netmgr_ndtostr(), netmgr_remote_nd(), netmgr_strtond()




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