我正在编程进程之间的发送和接收点。
我声明了一些这样的结构,
typedef struct Point
{
int x[100];
int y[100];
int count;
}Point;
然后我声明了消息队列和Point结构的数组
mqd_t mq[10];
Point p[10];
然后我分叉以创建10个子进程
for(i=0; i<10; i++)
{
pid[i] = fork();
if(pid[i] == 0)
break;
}
我在每个子进程中插入带有Point
结构(和p.count++;
)的x,y;我想将其发送到另一个子进程,但是它不起作用。
我这样尝试过(只是简单地向您展示,我的代码更复杂)
Point received_msg[10];
mq_send(mq[i], (char *)&p, MSG_SIZE, 0)
mq_receive(mq[i], (char *)&received_msg, MSG_SIZE, NULL)
,我检查了它发送到每个消息队列的次数,以及接收到消息的次数。 我还检查了这些计数是否相同。
但是在另一个子进程中收到消息后,我检查了struct中count的值,它仅为0。
如何正确地将消息接收到另一个进程?收到时是数据类型错误吗?