resmgr_msgwrite()

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

Прототип:

#include <sys/resmgr.h>
int resmgr_msgwrite( resmgr_context_t *ctp,
const void *msg,
int size,
int offset );

Аргументы:

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

Библиотека:

libc

Описание:

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

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

То же, что и у MsgWrite(): количество считанных байт.

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

Коды ошибок:

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

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

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

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

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

MsgWrite(), resmgr_context_t, resmgr_msgread(), resmgr_msgreadv(), resmgr_msgwritev()




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