我正在使用 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 语言中实现这一点?
最佳答案
您只需传递结构的地址并将其转换为适当的指针类型:mq_send
为 const char *,mq_receive
为 char *。
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);
关于c - mq_send 中的发送结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23044963/