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

9.30国庆

消息队列完成进程间通信 

#include <myhead.h>#define size sizeof(msg_ds)-sizeof(long)  //正文大小//消息结构体
typedef struct
{long msgtype;  //消息类型char data[1024];   //消息正文
}msg_ds;//创建子线程构造体
void *task1(void *arg)
{//创造第二个key值key_t key1;if((key1=ftok("/",'f'))==-1){perror("ftok error");}//创建第二个消息队列int msgid1;if((msgid1=msgget(key1,IPC_CREAT|0664))==-1){perror("msgget error");}//4、从消息队列中取数据msg_ds msg1;	while(1){//从消息队列中取数据//第一个0表示取消息的类型,每次都是取第一个//第二个0表示阻塞方式从消息队列中取数据if(msgrcv(msgid1,&msg1,size,0,0)==-1){perror("msgrcv error");}if(strcmp(msg1.data,"quit")==0){break;}printf("rcv: %s\n", msg1.data);}//删除消息队列msgctl(msgid1,IPC_RMID,NULL);
}
int main(int argc, const char *argv[])
{//1、创建key值key_t key;if((key=ftok("/",'k'))==-1){perror("fotk error");return -1;}//2、创造消息队列int msgid;if((msgid=msgget(key,IPC_CREAT|0664))==-1){perror("msgget error");return -1;}//3、主线程向队列中发送数据msg_ds msg={.msgtype=100};//定义一个线程号pthread_t tid;//创建一个子线程if(pthread_create(&tid,NULL,task1,NULL)){printf("子线程创建失败\n");return -1;}while(1){//printf("请输入消息的内容:");fgets(msg.data,sizeof(msg.data),stdin);  //向终端进程中输入数据msg.data[strlen(msg.data)-1]='\0'; //将最后一个字符'\n'变成'\0'//将消息发到消息队列中if(msgsnd(msgid,&msg,size,0)==-1){perror("msgsnd error");return -1;}//当输入quit字符串时,退出循环if(strcmp(msg.data,"quit")==0){break;}}//删除消息队列msgctl(msgid,IPC_RMID,NULL);return 0;
}
#include <myhead.h>#define size sizeof(msg_ds)-sizeof(long)  //正文大小//消息结构体
typedef struct
{long msgtype;  //消息类型char data[1024];   //消息正文
}msg_ds;//创建子线程构造体
void *task1(void *arg)
{//创造第二个key值key_t key1;if((key1=ftok("/",'f'))==-1){perror("ftok error");}//创建第二个消息队列int msgid1;if((msgid1=msgget(key1,IPC_CREAT|0664))==-1){perror("msgget error");}//4、从消息队列中取数据msg_ds msg1={.msgtype=100};	//4、从消息队列中取数据while(1){//printf("请输入消息的内容:");fgets(msg1.data,sizeof(msg1.data),stdin);  //向终端进程中输入数据msg1.data[strlen(msg1.data)-1]='\0'; //将最后一个字符'\n'变成'\0'//将消息发到消息队列中if(msgsnd(msgid1,&msg1,size,0)==-1){perror("msgsnd error");}//当输入quit字符串时,退出循环if(strcmp(msg1.data,"quit")==0){break;}}//删除消息队列msgctl(msgid1,IPC_RMID,NULL);
}
int main(int argc, const char *argv[])
{//1、创建key值key_t key;if((key=ftok("/",'k'))==-1){perror("fotk error");return -1;}//2、创造消息队列int msgid;if((msgid=msgget(key,IPC_CREAT|0664))==-1){perror("msgget error");return -1;}//3、主线程向队列中取数据msg_ds msg={.msgtype=100};//定义一个线程号pthread_t tid;//创建一个子线程if(pthread_create(&tid,NULL,task1,NULL)){printf("子线程创建失败\n");return -1;}while(1){//从消息队列中取数据//第一个0表示取消息的类型,每次都是取第一个//第二个0表示阻塞方式从消息队列中取数据if(msgrcv(msgid,&msg,size,0,0)==-1){perror("msgrcv error");return -1;}if(strcmp(msg.data,"quit")==0){break;}printf("rcv: %s\n", msg.data);}//删除消息队列msgctl(msgid,IPC_RMID,NULL);return 0;
}

 

相关文章:

9.30国庆

消息队列完成进程间通信 #include <myhead.h>#define size sizeof(msg_ds)-sizeof(long) //正文大小//消息结构体 typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }msg_ds;//创建子线程构造体 void *task1(void *arg) {//创造第二个key值ke…...

java基础-第4章-面向对象(二)

一、static关键字 静态&#xff08;static&#xff09;可以修饰属性和方法。 称为静态属性&#xff08;类属性&#xff09;、静态方法&#xff08;类方法&#xff09;。 静态成员是全类所有对象共享的成员。 在全类中只有一份&#xff0c;不因创建多个对象而产生多份。 不必创…...

flex加 grid 布局笔记

<style> .flex-container { display: flex; height: 100%; /* 设置容器的高度 */ } .wide { display: flex; padding: 10px; border: 1px solid lightgray; text-align: center; justify-content: …...

最高评级!华为云CodeArts Board获信通院软件研发效能度量平台先进级认证

9月26日&#xff0c;华为云CodeArts Board获得了中国信通院《云上软件研发效能度量分级模型》的先进级最高级评估&#xff0c;达到了软件研发效能度量平台评估的通用效能度量能力、组织效能模型、项目效能模型、资源效能模型、个人效能模型、研发效能评价模型、项目管理域、开发…...

图像上传功能实现

一、后端 文件存放在images.path路径下 package com.like.common;import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annot…...

03_Node.js模块化开发

1 Node.js的基本使用 1.1 NPM nodejs安装完成后&#xff0c;会跟随着自动安装另外一个工具npm。 NPM的全称是Node Package Manager&#xff0c;是一个NodeJS包管理和分发工具&#xff0c;已经成为了非官方的发布Node模块&#xff08;包&#xff09;的标准。 2020年3月17日&…...

Nginx支持SNI证书,已经ssl_server_name的使用

整理了一些网上的资料&#xff0c;这里记录一下&#xff0c;供大家参考 什么是SNI&#xff1f; 传统的应用场景中&#xff0c;一台服务器对应一个IP地址&#xff0c;一个域名&#xff0c;使用一张包含了域名信息的证书。随着云计算技术的普及&#xff0c;在云中的虚拟机有了一…...

Hive【Hive(六)窗口函数】

窗口函数&#xff08;window functions&#xff09; 概述 定义 窗口函数能够为每行数据划分 一个窗口&#xff0c;然后对窗口范围内的数据进行计算&#xff0c;最后将计算结果返回给该行数据。 语法 窗口函数的语法主要包括 窗口 和 函数 两个部分。其中窗口用于定义计算范围…...

Met no ‘TRANSLATIONS’ entry in project

这里写自定义目录标题 问题描述&#xff1a;解决方法&#xff1a; 问题描述&#xff1a; 多工程项目&#xff0c;执行完update Translation生成了.ts文件&#xff0c;也用翻译工具翻译完了&#xff0c;执行release时&#xff0c;报错“Met no ‘TRANSLATIONS’ entry in proje…...

Leetcode901-股票价格跨度

一、前言 本题基于leetcode901股票价格趋势这道题&#xff0c;说一下通过java解决的一些方法。并且解释一下笔者写这道题之前的想法和一些自己遇到的错误。需要注意的是&#xff0c;该题最多调用 next 方法 10^4 次,一般出现该提示说明需要注意时间复杂度。 二、解决思路 ①…...

“传统文化宣传片+虚拟人动捕设备”前景如何?

在数字化时代的发展下&#xff0c;动捕设备的加入&#xff0c;让传播传统文化的虚拟人更具生动表现&#xff0c;拉近人们与传统文化的距离&#xff0c;通过虚拟人动作捕捉动画宣传片&#xff0c;引起更多人对传统文化的关注与传承。 *图片源于网络 深圳文博会创意短片《嗨ICIF…...

节假日moc服务数据:解决用户99%的IT问题

Hi~ 伙伴们&#xff0c;这个国庆假期过得怎么样? 节后第一个工作日如期而至&#xff0c; 忙碌是消除倦怠的最佳良药。 回顾8天假日moc工程师的一组服务数据&#xff0c; 处理事件184起&#xff0c;工单23条。 其中&#xff0c;较为典型案例如下&#xff1a; 1、福建某附属医院…...

WOL唤醒配置(以太网、PHY、MAC)

目录 wol 以太网 MAC PHY RMII 通信配置 总结 wol Wake-on-LAN简称WOL&#xff0c;WOL&#xff08;网络唤醒&#xff09; 是一种标准网络协议&#xff0c;它的功效在于让已经进入休眠状态或关机状态的计算机&#xff0c;透过局域网&#xff08;多半为以太网&#xff…...

MySQL复制,约束条件,查询与安全控制

MySQL之复制 复制表 我有一个表 mysql> show tables; ------------------ | Tables_in_school | ------------------ | student | ------------------mysql> select * from student; -------------------------------------------- | id | name | sec |…...

Java ES 滚动查询

滚动查询&#xff08;Scroll Query&#xff09;是 Elasticsearch 提供的一种机制&#xff0c;用于处理大量数据的查询。它允许你在多个请求之间保持“游标”&#xff0c;以便在后续请求中获取更多的结果。 以下是滚动查询的基本工作原理&#xff1a; 1 初始查询: 客户端发送一…...

机器学习算法基础--KNN算法分类

文章目录 1.KNN算法原理介绍2.KNN分类决策原则3.KNN度量距离介绍3.1.闵可夫斯基距离3.2.曼哈顿距离3.3.欧式距离 4.KNN分类算法实现5.KNN分类算法效果6.参考文章与致谢 1.KNN算法原理介绍 KNN&#xff08;K-Nearest Neighbor&#xff09;工作原理&#xff1a; 在一个存在标签的…...

深入探究 C++ 编程中的资源泄漏问题

目录 1、GDI对象泄漏 1.1、何为GDI资源泄漏&#xff1f; 1.2、使用GDIView工具排查GDI对象泄漏 1.3、有时可能需要结合其他方法去排查 1.4、如何保证没有GDI对象泄漏&#xff1f; 2、进程句柄泄漏 2.1、何为进程句柄泄漏&#xff1f; 2.2、创建线程时的线程句柄泄漏 …...

BLE协议栈1-物理层PHY

从应届生开始做ble开发也差不读四个月的时间了&#xff0c;一直在在做上层的应用&#xff0c;对蓝牙协议栈没有过多的时间去了解&#xff0c;对整体的大方向概念一直是模糊的状态&#xff0c;在开发时也因此遇到了许多问题&#xff0c;趁有空去收集了一下资料来完成了本次专栏&…...

光伏储能直流系统MATLAB仿真(PV光伏阵列+Boost DCDC变换器+负载+双向DCDC变换器+锂离子电池系统)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

C++三大特性——继承(上篇)

文章目录 目录 一、继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 二、基类和派生类对象赋值转换 三、继承中的作用域 四、派生类的默认成员函数 一、继承的概念及定义 1.1继承的概念 继承(inherita…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

在 Spring Boot 项目里,MYSQL中json类型字段使用

前言&#xff1a; 因为程序特殊需求导致&#xff0c;需要mysql数据库存储json类型数据&#xff0c;因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Java 与 MySQL 性能优化:MySQL 慢 SQL 诊断与分析方法详解

文章目录 一、开启慢查询日志&#xff0c;定位耗时SQL1.1 查看慢查询日志是否开启1.2 临时开启慢查询日志1.3 永久开启慢查询日志1.4 分析慢查询日志 二、使用EXPLAIN分析SQL执行计划2.1 EXPLAIN的基本使用2.2 EXPLAIN分析案例2.3 根据EXPLAIN结果优化SQL 三、使用SHOW PROFILE…...

SQL进阶之旅 Day 22:批处理与游标优化

【SQL进阶之旅 Day 22】批处理与游标优化 文章简述&#xff08;300字左右&#xff09; 在数据库开发中&#xff0c;面对大量数据的处理任务时&#xff0c;单条SQL语句往往无法满足性能需求。本篇文章聚焦“批处理与游标优化”&#xff0c;深入探讨如何通过批量操作和游标技术提…...

Linux中INADDR_ANY详解

在Linux网络编程中&#xff0c;INADDR_ANY 是一个特殊的IPv4地址常量&#xff08;定义在 <netinet/in.h> 头文件中&#xff09;&#xff0c;用于表示绑定到所有可用网络接口的地址。它是服务器程序中的常见用法&#xff0c;允许套接字监听所有本地IP地址上的连接请求。 关…...

Pandas 可视化集成:数据科学家的高效绘图指南

为什么选择 Pandas 进行数据可视化&#xff1f; 在数据科学和分析领域&#xff0c;可视化是理解数据、发现模式和传达见解的关键步骤。Python 生态系统提供了多种可视化工具&#xff0c;如 Matplotlib、Seaborn、Plotly 等&#xff0c;但 Pandas 内置的可视化功能因其与数据结…...