我正在使用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语言来实现这一目标?
您只需要传递该结构的地址并将其转换为适当的指针类型即可:const char * for mq_send和char * for mq_receive。
mq_send
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);