linux消息队列实现信息互递

简介: linux消息队列实现信息互递


消息队列

struct msgbuf{
        long mtype;
        char mtext[128];
};
int main()
{
        struct msgbuf readbuf;
        int msgid = msgget(0x1235,IPC_CREAT|0777);//创建消息队列
        if(msgid == -1){
                printf("get que failuer\n");//如果返回值为-1,说明创建失败
        }
        msgrcv(msgid,&readbuf,sizeof(readbuf.mtext),888,0);//读取消息
        printf("read from que:%s\n",readbuf.mtext);//打印输出
        struct msgbuf sendbuf = {988,"thank you for reach"};//创建消息结构体
        msgsnd(msgid,&sendbuf,strlen(sendbuf.mtext),0);//添加消息,发送上面的sendbuf的内容
        return 0;
}

消息队列收

#include<stdio.h>
#include<sys/types.h>
#include<sys/ipc.h>
#include<string.h>
#include<sys/msg.h>
struct msgbuf{
        long mtype;
        char mtext[128];
};
int main()
{
        struct msgbuf sendbuf = {888,"this is message from quen"};
        struct msgbuf readbuf;
        int msgid = msgget(0x1235,IPC_CREAT|0777);//创建消息队列
        if (msgid == -1){
                printf("get que failuer\n");
        }
        msgsnd(msgid,&sendbuf,strlen(sendbuf.mtext),0);//添加消息
        printf("send over\n");
        msgrcv(msgid,&readbuf,sizeof(readbuf.mtext),988,0);//读取消息
        printf("reaturn from get %s\n",readbuf.mtext);//打印输出读取的消息
        return 0;
}
~            

运行显示

20200803110157677.png

相关文章
|
4月前
|
存储 监控 安全
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
在Linux中,⼀个EXT3的文件分区,当使用touch test.file命令创建⼀个新文件时报错,报错的信息是提示磁盘已满,但是采用df -h命令查看磁盘大小时,只使用了,60%的磁盘空间,为什么会出现这个情况?
|
1月前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
1月前
|
缓存 监控 Linux
|
1月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
99 1
|
4月前
|
消息中间件 Linux 开发者
Linux进程间通信秘籍:管道、消息队列、信号量,一文让你彻底解锁!
【8月更文挑战第25天】本文概述了Linux系统中常用的五种进程间通信(IPC)模式:管道、消息队列、信号量、共享内存与套接字。通过示例代码展示了每种模式的应用场景。了解这些IPC机制及其特点有助于开发者根据具体需求选择合适的通信方式,促进多进程间的高效协作。
193 3
|
4月前
|
安全 Linux 编译器
在Linux中,如何查看内核版本?内核版本信息包含什么?
在Linux中,如何查看内核版本?内核版本信息包含什么?
|
4月前
|
监控 网络协议 Linux
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
|
4月前
|
监控 安全 Linux
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
在Linux中,某个账号登陆linux后,系统会在哪些日志文件中记录相关信息?
|
5月前
|
Linux
|
5月前
|
存储 JSON Linux