一起talk C栗子吧(第九十八回:C语言实例--使用消息队列进行进程间通信二)
2024-08-26 15:20:09
各位看官们,大家好,上一回中咱们说的是使用消息队列进行进程间通信的样例。这一回咱们接着上一回的内容继续说使用消息队列进行进程间通信。闲话休提。言归正转。让我们一起talk C栗子吧!
我们在上一回中介绍了消息队列的概念和相关函数的使用方法,这一回中我们通过详细的样例来说明怎样使用消息队列进行进程间的通信。以下是使用消息队列的详细步骤:
- 1.定义一个结构体类型(第一个成员必须是long int类型),用来当作消息队列中消息的类型;
- 2.使用msgget函数创建或者获取消息队列,代码中的键使用了111这个随机数字;
- 3.在准备发送的消息中加入数据(代码中为msg_buf.data);
- 4.使用msgsnd函数把步骤3中的消息发送到消息队列中。
- 5.使用msgrcv函数从消息队列中获取消息,而且显示消息中的数据;
- 6.使用msgctl函数删除消息队列,须要使用的命令:IPC_RMID;
看官们。正文中就不写代码了,详细的代码放到了我的资源中,大家能够点击这里下载使用。
该程序和共享内存的演示样例程序相似。通过在执行程序时使用不同的參数来代表不同的进程。
- 參数:-w表示发送消息的进程;
- 參数:-r表示接收消息的进程。
此外,在程序中仅仅是为了演示消息队列的使用方法,没有考虑进程间的同步。
因此,须要先向消息队列中发送消息。然后才干从消息队列中获取消息。即:在执行程序时,先使用-w參数,然后再使用-r參数。假设不依照这个顺序执行程序。就会发生死锁。
以下是程序的执行结果。请大家參考:
./s -w //执行程序,通过參数w发送消息到消息队列中
write data into message.count:3,data:hello message queue //显示发送到消息队列中消息的内容
./s -r //执行程序。通过參数r从消息队列中读取消息
the data of message .count:3,data:hello message queue //显示接收到消息队列中消息的内容
各位看官。关于使用消息队列进行进程间通信的样例咱们就讲到这里。欲知后面还有什么样例,且听下回分解 。
最新文章
- *CF2.D(哥德巴赫猜想)
- intellij IDEA 出现“Usage of API documented as @since 1.6+”的解决办法
- JMeter学习-023-JMeter 命令行(非GUI)模式详解(一)-执行、输出结果及日志、简单分布执行脚本
- connections
- 30天C#基础巩固-----多态,工厂模式
- netbeans中给jpanl添加背景图片制定代码的理解——匿名内部类继承父类
- 如何选择linux 版本
- 李洪强iOS开发之OC[015]#pragma mark的使用
- 自定义seekbar中,thumb被覆盖掉一部分问题
- Nginx 配置基于域名的虚拟
- Hihocoder 2月29日
- php中的四种排序算法
- Configure the MySQL account associate to the domain user via MySQL Windows Authentication Plugin
- mvn test报错
- 使用shell安装lnmp
- Caused by: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
- 动态渲染页面爬取(Python 网络爬虫) ---Selenium的使用
- 转:Scanner中nextLine()方法和next()方法的区别
- phpstudy一系列安装问题
- git 随笔