IO 作业 24/2/26

1>思维导图

1> 使用消息队列完成两个进程间相互通信

#include<myhead.h>
//定义一个消息类型
struct msgbuf
{long mtype;         //消息类型char mtext[1024];   //消息正文
};
//定义一个宏,表示消息正文大小
#define MSGSIZE sizeof(struct msgbuf)-sizeof(long)
int main(int argc, const char *argv[])
{//创建子进程pid_t pid=fork();//在父进程实现读功能if(pid>0){//1、创建key值key_t key = 0;if((key=ftok("/", 'k')) == -1){perror("ftok error");return -1;}//2、根据key值创建一个消息队列int msqid = -1;if((msqid = msgget(key, IPC_CREAT|0664)) == -1){perror("msgget error");return -1;}//定义一个消息struct msgbuf rbuf;while(1){//清空容器bzero(rbuf.mtext, sizeof(rbuf.mtext));//只接受类型1msgrcv(msqid, &rbuf, MSGSIZE, 1, 0);printf("收到消息为:%s\n", rbuf.mtext);if(strcmp(rbuf.mtext, "quit")==0){break;}}//删除消息队列if(msgctl(msqid, IPC_RMID, NULL) !=0){perror("msgctl error");return -1;}}//在子进程实现写功能if(pid==0){//1、创建key值key_t key = 0;if((key=ftok("/", 'k')) == -1){perror("ftok error");return -1;}//2、根据key值创建一个消息队列int msqid = -1;if((msqid = msgget(key, IPC_CREAT|0664)) == -1){perror("msgget error");return -1;}//定义一个消息struct msgbuf sbuf;while(1){//清空正文的容器bzero(sbuf.mtext, sizeof(sbuf.mtext));sbuf.mtype=2;printf("请输入消息正文:");fgets(sbuf.mtext, sizeof(sbuf.mtext), stdin);sbuf.mtext[strlen(sbuf.mtext)-1] = 0;//将消息存放入队列中msgsnd(msqid, &sbuf, MSGSIZE, 0);printf("发送成功\n");if(strcmp(sbuf.mtext, "quit")==0){break;}}
}return 0;
}
#include<myhead.h>
//定义一个消息类型
struct msgbuf
{long mtype;         //消息类型char mtext[1024];   //消息正文
};
//定义一个宏,表示消息正文大小
#define MSGSIZE sizeof(struct msgbuf)-sizeof(long)
int main(int argc, const char *argv[])
{//创建子进程pid_t pid=fork();//在父进程实现读功能if(pid>0){//1、创建key值key_t key = 0;if((key=ftok("/", 'k')) == -1){perror("ftok error");return -1;}//2、根据key值创建一个消息队列int msqid = -1;if((msqid = msgget(key, IPC_CREAT|0664)) == -1){perror("msgget error");return -1;}//定义一个消息struct msgbuf rbuf;while(1){//清空容器bzero(rbuf.mtext, sizeof(rbuf.mtext));//只接受类型2msgrcv(msqid, &rbuf, MSGSIZE, 2, 0);printf("收到消息为:%s\n", rbuf.mtext);if(strcmp(rbuf.mtext, "quit")==0){break;}}//删除消息队列if(msgctl(msqid, IPC_RMID, NULL) !=0){perror("msgctl error");return -1;}}//在子进程实现写功能if(pid==0){//1、创建key值key_t key = 0;if((key=ftok("/", 'k')) == -1){perror("ftok error");return -1;}//2、根据key值创建一个消息队列int msqid = -1;if((msqid = msgget(key, IPC_CREAT|0664)) == -1){perror("msgget error");return -1;}//定义一个消息struct msgbuf sbuf;while(1){//清空正文的容器bzero(sbuf.mtext, sizeof(sbuf.mtext));sbuf.mtype=1;printf("请输入消息正文:");fgets(sbuf.mtext, sizeof(sbuf.mtext), stdin);sbuf.mtext[strlen(sbuf.mtext)-1] = 0;//将消息存放入队列中msgsnd(msqid, &sbuf, MSGSIZE, 0);printf("发送成功\n");if(strcmp(sbuf.mtext, "quit")==0){break;}}
}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

某款服务器插上4张TDP功耗75瓦PCIE卡无法开机的调试过程

1.服务器厂家说这款服务器测过别家的4卡&#xff0c;所以一开始并没有怀疑服务器硬件有问题 2.拔掉另外三张&#xff0c;只保留cpu0对应的riser0 slot0上的一张卡&#xff0c;仍然无法开机。 3.怀疑是这张pcie卡bar空间太大导致。换另一款bar空间小的卡&#xff0c;仍然无法开…

人工智能 — 点云模型

目录 一、点云模型1、三维图像2、点云1、概念2、内容 3、点云处理的三个层次1、低层次处理方法2、中层次处理方法3、高层次处理方法 二、Spin image 一、点云模型 1、三维图像 三维图像是一种特殊的信息表达形式&#xff0c;其特征是表达的空间中三个维度的数据。 和二维图像…

荣耀手机如何开启地震预警功能

1、打开荣耀手机&#xff0c;进入“设置”&#xff0c;在搜素栏输入“地震”。 2、进入“安全-应急预警通知”功能栏。 3、开启“地震预警”。 4、查看“预警演示教程”。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/e207e356bb634c11adf926c6a53e48cc.png…

Mysql学习之事务日志redolog深入剖析

Mysql 事务日志 redo log 事务有4种特性&#xff1a;原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现的呢&#xff1f; 事务的隔离性由锁机制实现。而事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。 REDO LOG 称为重做日志&…

OpenGL ES (OpenGL) Compute Shader 计算着色器是怎么用的?

OpenGL ES (OpenGL) Compute Shader 是怎么用的? Compute Shader 是 OpenGL ES(以及 OpenGL )中的一种 Shader 程序类型,用于在GPU上执行通用计算任务。与传统的顶点着色器和片段着色器不同,Compute Shader 被设计用于在 GPU 上执行各种通用计算任务,而不是仅仅处理图形…

挑战杯 基于情感分析的网络舆情热点分析系统

文章目录 0 前言1 课题背景2 数据处理3 文本情感分析3.1 情感分析-词库搭建3.2 文本情感分析实现3.3 建立情感倾向性分析模型 4 数据可视化工具4.1 django框架介绍4.2 ECharts 5 Django使用echarts进行可视化展示5.1 修改setting.py连接mysql数据库5.2 导入数据5.3 使用echarts…

供应链大数据:穿越经济迷雾的指南针

随着经济形势的变幻莫测&#xff0c;企业运营面临着前所未有的挑战。在这个充满不确定性的时代&#xff0c;供应链大数据如同一盏明亮的指南针&#xff0c;为企业提供精准的方向指引。下面&#xff0c;我们将深入探讨供应链大数据如何帮助企业洞察市场趋势、优化库存管理、降低…

Pod yaml文件详解

apiVersion: v1 #必选&#xff0c;版本号&#xff0c;例如v1 kind: Pod #必选&#xff0c;Pod metadata: #必选&#xff0c;元数据 name: string #必选&#xff0c;Pod名称 namespace: string #必选&#…

2.deeplabv3+的主干网络(mobilenet网络)

deeplabv3的论文中用了resnet网络&#xff0c;在这里用轻量级网络mobilenet替换resnet&#xff0c;下面分别是两个网络的代码。 1.mobilenet网络 代码如下&#xff1a; import math import os import cv2 import numpy as np import torch import torch.nn as nn import tor…

基于YOLOv8深度学习+Pyqt5的电动车头盔佩戴检测系统

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;225头盔 获取完整源码源文件已标注的数据集&#xff08;1463张&#xff09;源码各文件说明配置跑通说明文档 若需要一对一远程操作在你电脑跑通&#xff0c;有偿89yuan 效果展示 基于YOLOv8深度学习PyQT5的电动车头盔佩戴检…

Java学习——泛型通配符

Java泛型的通配符?&#xff08;问号&#xff09;是一种特殊的类型参数&#xff0c;用于表示未知的类型。通配符可以在使用泛型类型时提高代码的灵活性&#xff0c;使得一个泛型容器能够引用多种不同类型的泛型对象。主要有三种类型的通配符使用场景&#xff1a;无界通配符、有…

网络防御-内容安全

目录 内容安全IAE引擎DFI和DPI技术 --- 深度检测技术DPI --- 深度包检测技术DFI --- 深度流检测技术 入侵防御&#xff08;IPS&#xff09;入侵检测的方法异常检测误用检测 签名ID --- 签名的标识检测范围 内容安全 攻击可能只是一个点&#xff0c;防御需要全方面进行 IAE引擎 …

表单进阶--复选框

radio&#xff1a;单选框&#xff08;单选&#xff09; checkbox&#xff1a;多选框&#xff08;多选&#xff09; 语法&#xff1a;<input type"radio/checkbox" value"值" name"名称" checked"checked"/> type&am…

2 easy 27. 移除元素

双指针法 复杂度&#xff1a; //给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 // // 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 // // 元素的顺…

【大数据】Flink SQL 语法篇(四):Group 聚合

Flink SQL 语法篇&#xff08;四&#xff09;&#xff1a;Group 聚合 1.基础概念2.窗口聚合和 Group 聚合3.SQL 语义4.Group 聚合支持 Grouping sets、Rollup、Cube 1.基础概念 Group 聚合定义&#xff08;支持 Batch / Streaming 任务&#xff09;&#xff1a;Flink 也支持 G…

RCE (Remote ????? execution) --->CTF

看这个标题就知道今天的内容不简单&#xff01;&#xff01;&#xff01;&#xff01; 那么就来讲一下我们的RCE吧 目录 ​编辑 1. &&#xff1f; |&#xff1f; ||&#xff1f; &&&#xff1f; 2.PHP命令执行函数&& ||"" 1."" &…

6、进程、服务管理

一、进程管理 1.概述 进程是正在执行的程序或命令&#xff0c;每一个进程都独立运行&#xff0c;都有自己的地址空间&#xff0c;并占用一定的系统资源以后开发会遇见&#xff1a; 端口占用出现程序假死、卡死 2.查看系统运行进程 语法 ps 参数ps –a:显示当前终端下的所有…

智能SQL生成:后端技术与LLM的完美结合

文章目录 引言一、什么是大模型二、为什么选择LLM三、开发技术说明四、系统架构说明五、编码实战1. Maven2. 讯飞大模型配置类3. LLM相关的封装4. 编写LLM的service5. 编写controller6. 运行测试 六、总结 引言 本篇文章主要是关于实现一个类似Chat2DB的根据自然语言生成SQL的…

开源工具和框架

目录 开源工具和框架 一、 开源工具和框架 二、开源工具和框架在现代软件开发中的角色 1、基础设施建设&#xff1a; 2、开发效率提升&#xff1a; 3、代码质量保障&#xff1a; 4、技术创新&#xff1a; 三、广泛使用的开源项目分析 3.1、Linux 3.2、Git 3.3、Docke…

Unity接入讯飞的大数据模型

原&#xff1a;基于C#WPF编写的调用讯飞星火大模型工具_c#xf$xccx-CSDN博客 记录一下以防以后用到。 using Newtonsoft.Json; using System.Collections.Generic;public class JsonResponse {[JsonProperty("header")]public ResponseHeader Header { get; set; }[…