linux 消息队列编程
有a.cb.c两个文件编译后由两个窗口运行a向b发送数据b在接到a发的数据后向a发送一个数据a在接受到b的信息后打印数据,请问这个用消息队列怎么写啊...
有a.c b.c两个文件编译后由两个窗口运行 a向b发送数据 b在接到a发的数据后向a发送一个数据 a在接受到b的信息后 打印数据,请问这个用消息队列怎么写啊
展开
1个回答
展开全部
两个进程用相同的key,就能共享了。 之后就能通讯了。例如下面用1234做key
//接收方
msgid = msgget((key_t)1234, 0666 | IPC_CREAT);
if(msgrcv(msgid, (void*)&data, BUFSIZ, msgtype, 0) == -1)
{
fprintf(stderr, "msgrcv failed with errno: %d\n", errno);
exit(EXIT_FAILURE);
}
//发送方
msgid = msgget((key_t)1234, 0666 | IPC_CREAT);
if(msgsnd(msgid, (void*)&data, MAX_TEXT, 0) == -1)
{
fprintf(stderr, "msgsnd failed\n");
exit(EXIT_FAILURE);
}
追问
这个我会。。。
追答
那你这个不是很简单嘛
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询