当前位置: 首页 > news >正文

红河做网站web制作网站的模板

红河做网站,web制作网站的模板,石家庄网站建设公司哪个好,做美女写真网站犯法吗C进程间通信 消息队列 消息队列概述消息队列代码示例1. 创建和发送消息的程序(sender.cpp)2. 接收消息的程序(receiver.cpp) 代码解释运行步骤运行结果 消息队列概述 消息队列是一种进程间通信机制,允许一个或多个进程…

C++进程间通信 消息队列

    • 消息队列概述
    • 消息队列代码示例
      • 1. 创建和发送消息的程序(sender.cpp)
      • 2. 接收消息的程序(receiver.cpp)
    • 代码解释
    • 运行步骤
    • 运行结果

消息队列概述

消息队列是一种进程间通信机制,允许一个或多个进程通过消息的形式进行通信。消息队列可以在内核中维护,提供了一个先进先出的队列,支持消息的优先级排序。

消息队列代码示例

1. 创建和发送消息的程序(sender.cpp)

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <iostream>
#include <cstring>
#include <cstdlib>#define MSGQ_KEY 1234
#define MSG_SIZE 128struct message 
{long msg_type;char msg_text[MSG_SIZE];
};int main() 
{int msgid = msgget(MSGQ_KEY, 0666 | IPC_CREAT);  // 创建消息队列if (msgid == -1) {perror("msgget");exit(EXIT_FAILURE);}message msg;msg.msg_type = 1;  // 消息类型strcpy(msg.msg_text, "Hello from sender process!");  // 消息内容if (msgsnd(msgid, &msg, sizeof(msg.msg_text), 0) == -1) {  // 发送消息perror("msgsnd");exit(EXIT_FAILURE);}std::cout << "Message sent: " << msg.msg_text << std::endl;return 0;
}

2. 接收消息的程序(receiver.cpp)

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <iostream>
#include <cstring>
#include <cstdlib>#define MSGQ_KEY 1234
#define MSG_SIZE 128struct message 
{long msg_type;char msg_text[MSG_SIZE];
};int main() 
{int msgid = msgget(MSGQ_KEY, 0666 | IPC_CREAT);  // 获取消息队列if (msgid == -1) {perror("msgget");exit(EXIT_FAILURE);}message msg;if (msgrcv(msgid, &msg, sizeof(msg.msg_text), 1, 0) == -1) {  // 接收消息perror("msgrcv");exit(EXIT_FAILURE);}std::cout << "Message received: " << msg.msg_text << std::endl;if (msgctl(msgid, IPC_RMID, nullptr) == -1) {  // 删除消息队列perror("msgctl");exit(EXIT_FAILURE);}return 0;
}

代码解释

  1. 创建和发送消息的程序(sender.cpp)

    • msgget(MSGQ_KEY, 0666 | IPC_CREAT): 创建一个消息队列,如果消息队列不存在则创建,否则获取现有的消息队列。
    • 定义一个message结构,包含消息类型和消息文本。
    • 设定消息类型并赋值消息文本。
    • msgsnd(msgid, &msg, sizeof(msg.msg_text), 0): 发送消息到消息队列。
    • 打印发送的消息。
  2. 接收消息的程序(receiver.cpp)

    • msgget(MSGQ_KEY, 0666 | IPC_CREAT): 获取消息队列。
    • 定义一个message结构,包含消息类型和消息文本。
    • msgrcv(msgid, &msg, sizeof(msg.msg_text), 1, 0): 从消息队列接收类型为1的消息。
    • 打印接收到的消息。
    • msgctl(msgid, IPC_RMID, nullptr): 删除消息队列。

运行步骤

  1. 分别编译sender.cppreceiver.cpp
    g++ sender.cpp -o sender
    g++ receiver.cpp -o receiver
    
  2. 打开两个终端,在第一个终端运行接收程序:
    ./receiver
    
  3. 在第二个终端运行发送程序:
    ./sender
    

运行结果

第一个终端(运行接收程序)输出:

Message received: Hello from sender process!

第二个终端(运行发送程序)输出:

Message sent: Hello from sender process!
http://www.ds6.com.cn/news/73483.html

相关文章:

  • 网站左侧的导航是怎么做的佛山网站快速排名提升
  • 学习网站免费搜索引擎广告形式有
  • 厦门网站建设哪家好厦门最好的网站建设怎么做百度推广运营
  • 局域网内服务器做网站seo的流程是怎么样的
  • 桂林旅游网站制作公司手机优化软件哪个好
  • 网站建设推广代理公司无锡整站百度快照优化
  • 网站建设的团队分工下载百度极速版
  • 网站空间 价格深圳十大网络推广公司排名
  • 做的漂亮的家居网站怎么推广软件让别人下载
  • 手机电脑网站网站搜索系统
  • 做网站外包最牛的公司头条新闻
  • 阳江二手房个人出售信息优化课程体系
  • 自建网站做外贸网络营销策划的基本原则是什么
  • 做网站如何选择关键词成都网站搭建优化推广
  • 湛江做网站多少钱网站排名查询alexa
  • 公司开发网站百度推广费用预算表
  • 网站系统维护怎么做网站赚钱
  • 想建个图片网站游戏推广平台有哪些
  • 微信网站案例文娱热搜榜
  • vps配置iis网站防疫优化措施
  • 做商务网站需要什么资料百度怎么联系客服
  • 网站地址url是什么2023年新冠疫情最新消息
  • 网站开发技能证书如何提高网站的自然排名
  • 上海电子商务网站建设百度关键词排名代做
  • 公司网站域名更改怎么做海口seo计费
  • 公司网站建设开源平台打开百度搜索引擎
  • 上海专业高端网站建设服务器黄冈网站推广厂家
  • 做网站销售怎么找客户太原全网推广
  • 怎么做网站的sitemap东莞关键词优化平台
  • 上海活动策划公司排行榜深圳网络推广seo软件