MsgInfo(), MsgInfo_r()

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

Прототип:

#include <sys/neutrino.h>
int MsgInfo( int rcvid,
struct _msg_info *info );
int MsgInfo_r( int rcvid,
struct _msg_info *info );

Аргументы:

rcvid
Идентификатор сообщения, возвращаемый потоку-серверу функцией MsgReceivev*() при приеме сообщения.
info
Указатель на структуру struct _msg_info, в которую функция будет сохранять информацию о сообщении.

Библиотека:

libc

Описание:

Функции MsgInfo() и MsgInfo_r() запрашивают у ядра дополнительную информацию о полученном сообщении и записывают её в заданную структуру struct _msg_info.

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


Note: Поля info->msglen и info->srcmsglen содержат актуальные данные только до следующего вызова функции MsgRead*() или MsgWrite*().

Состояния блокировки:

Данная функция не является блокирующей.

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

MsgInfo()
Если возникла ошибка функция возвращает -1, код ошибки записывается в errno. Любое другое возвращенное значение считается успешным завершением.
MsgInfo_r()
EOK возвращается при успешном завершении. Функция НЕ устанавливает errno. При возникновении ошибки функция возвращает один из представленных ниже кодов.

Коды ошибок:

EFAULT
Ошибка при попытке ядра получить доступ к предоставленным буферам.
ESRCH
Поток-клиент, ассоциированный с rcvid не существует.

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

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

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

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

ChannelCreate(), struct _msg_info, MsgRead(), MsgReadv(), MsgReceive(), MsgReceivev(), MsgSend(), MsgSendv(), MsgWrite*()




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