дано : 2 thread-a общаюшиеся через message queue . один посылает в очередь сообщение .
второй сообщение ловит с ключом IPC_NOWAIT . msqid у них локальные .
результат сего простого действия такой :
сообение остылается нормально .
принимающий словил такое же кол-во байтов , но буффер равен NULL .
при этом на стороне принимающего perror вываливается c сообщением : "msgrcv: No such file or directory"
в описании к msgrcv ничего не нашёл подобного . кто нибудь знает что это знает ?
перевод "No such file or directory" не нужен . :)
>дано : 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 ?