8.消息队列收发数据

本文通过示例代码介绍了如何在Linux系统中使用消息队列进行数据的发送和接收。首先展示了读取消息的`msgGet.c`代码,并提供了编译指令。接着,给出了发送消息的`msgSend.c`代码及其编译方法。按照运行流程,应先执行`get`程序,然后执行`send`程序,以实现数据的传递。实际运行后会观察到数据收发的效果。
摘要由CSDN通过智能技术生成

1.读消息的代码:

msgGet.c

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include<stdio.h>
#include<string.h>

struct msgbuf {
    long mtype; //消息类型     /* message type, must be > 0 */
    char mtext[128]; //消息内容   /* message data */
};



int main()
{
     //int msgget(key_t key, int msgflg);
     struct msgbuf readBuf;

     int msgId = msgget(0x1235,IPC_CREAT|0777);//0777可读可写可执行

     if(msgId == -1)//创建消息队列失败
     {
         printf("get que failuer\n");
     }


     //int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);
  //ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg);

     msgrcv(msgId,&readBuf,sizeof(readBuf.mtext),888,0);//读取消息 
     printf("read form que:%s\n",readBuf.mtext);

     struct msgbuf sendBuf = {988,"thank you for reach"};
     msgsnd(msgId,&sendBuf,strlen(sendBuf.mtext),0);//发送消息

     return 0;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值