URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4368
[ Назад ]

Исходное сообщение
"msgrcv :  непонятная ошибка"

Отправлено Telepoozeeck , 14-Июн-05 22:21 
дано : 2 thread-a общаюшиеся через message queue . один посылает в очередь сообщение .
второй сообщение ловит с ключом IPC_NOWAIT . msqid у них локальные .

результат сего простого действия такой :
сообение остылается нормально .
принимающий словил такое же кол-во байтов , но буффер равен NULL .
при этом на стороне принимающего perror вываливается c сообщением : "msgrcv: No such file or directory"
в описании к msgrcv ничего не нашёл подобного . кто нибудь знает что это знает ?  
перевод "No such file or directory" не нужен . :)

Содержание

Сообщения в этом обсуждении
"msgrcv :  непонятная ошибка"
Отправлено programmator , 15-Июн-05 04:42 
>дано : 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 ?