resmgr_msgwritev()

Написать сообщение клиенту

Прототип:

#include <sys/resmgr.h>
int resmgr_msgwritev( resmgr_context_t *ctp,
const iov_t *iov,
int sparts,
int offset );

Аргументы:

ctp
Указатель на структуру resmgr_context_t, которую библиотека менеджера ресурсов использует для передачи контекстной информации между функциями. Данная функция извлекает rcvid из этой структуры.
iov
Массив из объектов iov_t, где хранятся данные для записи.
rparts
Количество элементов массива iov. Данная функция не позволяет писать за границы буфера отправителя; она возвращает количество фактически записанных байт.
offset
Смещение в буфере отправителя, которое указывает, откуда необходимо начать запись данных.

Библиотека:

libc

Описание:

Функция resmgr_msgwritev() является оберткой над MsgWritev(), и предоставляет тот же функционал. Функция предусмотрена для согласования с resmgr_msgwrite().

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

Число записанных байт данных. Если возникла ошибка функция возвращает -1, код ошибки записывается в errno.

Коды ошибок:

EFAULT
Произошла ошибка в адресном пространстве сервера при попытке доступа к буферам сообщений вызывающей стороны.
ESRCH
Поток ctp-> rcvid не существует или его соединение прервано.
ESRVRFAULT
Произошла ошибка при попытке ядра получить доступ к предоставленным буферам.

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

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

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

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

iov_t, MsgWritev(), resmgr_context_t, resmgr_msgread(), resmgr_msgreadv(), resmgr_msgwrite()




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