Error with mq_receive

Hi all,

I am using msg queues in our program and have been for a few years. I have
just recently added a new task with a new queue, and when I call
mq_receive() for this queue it is getting errno 14, EFAULT, meaning bad
address. I can’t find anything in the docs to indicate what this might mean
in relation to mq_receive(). Can anyone shed some light?

Every other message queue (I have 35 other queues) are working perfectly.
We are running mqueue 4.24A on QNX4.25

Regards,
Rodney

Rodney <rodneyg@tritro.com.au> wrote:

Hi all,

I am using msg queues in our program and have been for a few years. I have
just recently added a new task with a new queue, and when I call
mq_receive() for this queue it is getting errno 14, EFAULT, meaning bad
address. I can’t find anything in the docs to indicate what this might mean
in relation to mq_receive(). Can anyone shed some light?

EFAULT usually comes from the underlieing Sendfd() call used to implement
mq_receive().

The description is:

EFAULT
In order to complete the message exchange, the current process would
have incurred a segment violation. Your buffer(s) may be invalid or
too small.

So, look for a bad pointer, or too small buffer to your mq_receive().

-David

QNX Training Services
http://www.qnx.com/services/training/
Please followup in this newsgroup if you have further questions.