一尘不染

在mq_send中发送结构

linux

我正在使用POSIX IPC并根据文档-http://man7.org/linux/man-
pages/man3/mq_send.3.html

mq_send()方法仅发送char *数据,而mq_recv()仅接收字符数据。但是,我想将自定义结构发送到我的味精队列,并且在接收端,我想获取该结构。

样本结构:

struc Req
{
  pid_t pid;
  char data[4096];
}

那么,有谁知道如何用C语言来实现这一目标?


阅读 316

收藏
2020-06-07

共1个答案

一尘不染

您只需要传递该结构的地址并将其转换为适当的指针类型即可:const char * for mq_send和char * for
mq_receive

typedef struct Req
{
  pid_t pid;
  char data[4096];
} Req;

Req buf;

n = mq_receive(mqdes0, (char *) &buf, sizeof(buf), NULL);

mq_send(mqdes1, (const char *) &buf, sizeof(buf), 0);
2020-06-07