>дано : 2 thread-a общаюшиеся через message queue . один посылает в
>очередь сообщение .
>второй сообщение ловит с ключом IPC_NOWAIT . msqid у них локальные .
>
>
>результат сего простого действия такой :
>сообение остылается нормально .
>принимающий словил такое же кол-во байтов , но буффер равен NULL .
>
Что-то не то. В функцию msgrcv() передается адрес готового буфера.
Примерно так
char buf[1000];
rc = msgrcv(msg_id, (struct msgbuf*)buf, buf_len, msg_type, IPC_NOWAIT);
printf("%s\n", ((struct msgbuf*)buf)->mtext);
Может, в флаги стоит добавить MSG_NOERROR ?