Я реализую связь между двумя процессами с помощью очереди. Проблема в том, что когда я вызываю функцию 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);
, но безрезультатно.