MsgInfo(), MsgInfo_r()

Updated: April 19, 2023

Get additional information about a message

Synopsis:

#include <sys/neutrino.h>

int MsgInfo( int rcvid,
             struct _msg_info* info );

int MsgInfo_r( int rcvid,
               struct _msg_info* info );

Arguments:

rcvid
The receive ID that MsgReceive*() returned when you received the message.
info
A pointer to a _msg_info structure where the function can store information about the message.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The MsgInfo() and MsgInfo_r() kernel calls get additional information about a received message and store it in the specified _msg_info structure.

These functions are identical, except in the way they indicate errors. See the Returns section for details.

Note: The info->msglen and info->srcmsglen members are valid only until the next call to MsgRead*() or MsgWrite*().

Blocking states

These calls don't block.

Returns:

The only difference between these functions is the way they indicate errors:

MsgInfo()
If an error occurs, this function returns -1 and sets errno. Any other value returned indicates success.
MsgInfo_r()
If successful, this function returns EOK. This function does NOT set errno, even on success. If an error occurs, it may return any value from the Errors section.

Errors:

EFAULT
A fault occurred when the kernel tried to access the buffers provided.
ESRCH
The thread indicated by rcvid doesn't exist.

Classification:

QNX Neutrino

Safety:  
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes