我正在使用队列实现两个进程之间的通信.问题是,当我调用函数mq_receive时,我收到此错误:消息太长.
我做了以下事情:
struct mq_attr attr;
long size = attr.mq_msgsize;
.... // initializing the queue "/gateway"
int rc = mq_receive(gateway, buffer, size, &prio);
Run Code Online (Sandbox Code Playgroud)
如果我打印大小值,我得到size = 1,而当我打印相同的大小但从另一个程序(通过相同的机制获得),我得到一些不长的整数(-1217186280)...
我怎么能解决这个错误?....所以当size = 1时,我认为说"消息太长"是正确的,但为什么是1?
PS我也尝试过:
int rc = mq_receive(gateway, buffer, sizeof(buffer), &prio);
Run Code Online (Sandbox Code Playgroud)
但没有结果.
我尝试通过 msg 队列发送整数,但函数 mq_send(mq, &val , sizeof(val), 0); 仅适用于 char 类型指针,因此有什么方法可以将整数发送到具有另一个函数或相同函数的队列。
问候...