_mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee removes a message, of size _m_s_g_l_e_n bytes, from the message
queue named by the _m_q_d descriptor, and copies it to the buffer at address
_m_s_g_p_t_r.
Messages are removed in priority order with higher priority messages
removed before the lower priority messages. The larger the numerical
value of the priority, the more important the message. If the argument
_m_s_g_p_r_i_o is not NULL, the priority of the message removed is stored at
address _m_s_g_p_r_i_o. Messages of equal priority are removed in FIFO order.
If the OOOO____NNNNOOOONNNNBBBBLLLLOOOOCCCCKKKK flag is set for the _m_d_q message queue descriptor,
_mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee will not block when the queue is empty [see _mmmm_qqqq______ssss_eeee_tttt_aaaa_tttt_tttt_rrrr(3c)].
Otherwise, _mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee will block until either a message is present in the
queue, or _mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee is interrupted by a signal.
If multiple processes are waiting to receive a message from the queue,
the highest priority process will receive the message when it is
delivered. Processes with equal priorities, blocked waiting for
messages, are unblocked in FIFO order when messages arrive.
_mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee will fail if one or more of the following conditions are true:
[EAGAIN] The OOOO____NNNNOOOONNNNBBBBLLLLOOOOCCCCKKKK flag is set for the _m_q_d queue descriptor
and the queue is empty.
[EBADF] The message queue descriptor, _m_q_d, is not valid or the
queue was not opened for reading.
[EINTR] The _mmmm_qqqq______rrrr_eeee_cccc_eeee_iiii_vvvv_eeee system call was interrupted by a signal.
[EMSGSIZE] The size of the buffer, _m_s_g_l_e_n, is less than the value of