mq_receive: слишком длинное сообщение

Я реализую связь между двумя процессами с помощью очереди. Проблема в том, что когда я вызываю функцию mq_receive, я получаю следующую ошибку: Слишком длинное сообщение.

Я сделал следующее:

struct mq_attr attr;

long size = attr.mq_msgsize;
.... // initializing the queue "/gateway"

int rc = mq_receive(gateway, buffer, size, &prio);

Если я напечатаю значение размера, я получаю size = 1, а когда я распечатываю того же размера, но из другой программы (полученной с помощью того же механизма), я получаю что-то не длинное целое число (-1217186280) ...

Как я могу решить эту ошибку? .... так что, пока size = 1, я считаю, что это правильно сказать «сообщение слишком длинное», но почему 1?

PS Я тоже пробовал поставить:

int rc = mq_receive(gateway, buffer, sizeof(buffer), &prio);

, но безрезультатно.

9
задан mkj 29 October 2016 в 18:55
поделиться