Vin*_*rma 10 c linux posix ipc mqueue
我正在使用POSIX IPC并根据文档 - http://man7.org/linux/man-pages/man3/mq_send.3.html
mq_send()方法只发送char*数据,而mq_recv()只接收字符数据.但是,我想将自定义结构发送到我的msg队列,在接收端,我想获取结构.
示例结构:
struc Req
{
pid_t pid;
char data[4096];
}
Run Code Online (Sandbox Code Playgroud)
那么,有谁知道如何在C lang中实现这一目标?
Duc*_*uck 15
您只需要传递结构的地址并将其转换为适当的指针类型: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);
Run Code Online (Sandbox Code Playgroud)