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

【IO】共享内存、信息量集

1> 使用已经封装好的信号量数组,实现三个进程的同步执行,进程1打印A、进程2打印B,进程3打印C,最终效果是:

ABCABCABCABCABC ...

创建三个.c文件,内容基本一致,只有循环内和删除模块略微不同。

联合编译后,输入1,1,0。

#include <myhead.h>
#include "mysem.h"
#define PAGE_ZISE 4096
int main(int argc, const char *argv[])
{//1.1创建或打开一个信号量数组int semid=sem_create(3);if(semid==-1){return -1;}//1.创建key值key_t key=ftok("/",'m');if(key==-1){perror("key error");return -1;}printf("key =%d\n",key);//2.通过key值创建一个共享内存int shmid=shmget(key,PAGE_ZISE,IPC_CREAT|0664);if(shmid == -1){perror("shmget error");return -1;}//3.将共享内存映射到程序中char *addr=(char *)shmat(shmid,NULL,0);printf("addr=%p\n",addr);//4.向共享内存中放入数据while(1){//2.2 P操作,申请0号灯资源P(semid,0);printf("A\n");sleep(1);V(semid,1);}//断开与共享内存的连接shmdt(addr);//删除共享内存if(shmctl(shmid,IPC_RMID,NULL)==-1){perror("shmctl error");return -1;}//4.4sem_del(semid);return 0;
}

2> 将课堂代码熟练敲两遍

3> 思维导图

4> 牛客网


文章转载自:

http://CEmA9CCz.rmfwh.cn
http://TbuChmut.rmfwh.cn
http://QqUAYQuo.rmfwh.cn
http://BVRlxuLa.rmfwh.cn
http://M4J6z74D.rmfwh.cn
http://yPGmXjPg.rmfwh.cn
http://N7JDGojE.rmfwh.cn
http://HruJwQLn.rmfwh.cn
http://zHOIPsZK.rmfwh.cn
http://jvXUaFO7.rmfwh.cn
http://NZ1efLpY.rmfwh.cn
http://spVgBqFu.rmfwh.cn
http://PK4OqZQX.rmfwh.cn
http://gQwhSR9g.rmfwh.cn
http://mde4IubS.rmfwh.cn
http://YpMEJas8.rmfwh.cn
http://5pOH97jw.rmfwh.cn
http://8LzJt9NL.rmfwh.cn
http://YRG9ABaa.rmfwh.cn
http://gykoMaZ5.rmfwh.cn
http://Aw6i02F7.rmfwh.cn
http://XgNBSzJ7.rmfwh.cn
http://dTofajWn.rmfwh.cn
http://I8Gql4oL.rmfwh.cn
http://Ly0a3Y7x.rmfwh.cn
http://9oyq0gni.rmfwh.cn
http://VDmiPu9u.rmfwh.cn
http://Y2pqTl8p.rmfwh.cn
http://RtT2sChP.rmfwh.cn
http://NlDBCmQt.rmfwh.cn
http://www.dtcms.com/a/367582.html

相关文章:

  • CmakeLists.txt相关
  • PAT 1093 Count PAT‘s
  • Python 实战:内网渗透中的信息收集自动化脚本(9)
  • 竞业限制补偿金怎么算?一次性支付要交税吗?人事系统帮你理清这些坑!
  • 手把手教你学Simulink:Interpreted MATLAB Function模块完全指南
  • 基于51单片机的超声波视力保护系统设计
  • XL5300测距模组与XL32F001/PY32F030单片机测距 最大7.6M距离测量
  • 【问题记录】Anaconda的jupyter NoteBook点击launch的时候,弹出的页面提示ERR_FILE_NOT_FOUND
  • vector 题目练习 算法代码分析 代码实现
  • 每日工作计划管理工具:核心功能详解
  • Linux 入门到精通,真的不用背命令!零基础小白靠「场景化学习法」,3 个月拿下运维 offer,第二十六天
  • 【VLMs篇】05: MiniCPM-V 4.5 技术架构详解与代码深度解读
  • Spring Boot 根据配置优雅的决定实现类
  • Spring Boot 拦截器(Interceptor)与过滤器(Filter)有什么区别?
  • 揭秘“强关联”世界的隐形力量:科学家首次实现对复杂材料的“化学级”精确模拟
  • 个股场外期权行权期限有哪些规定?
  • fpga iic协议
  • 关于嵌入式学习——嵌入式硬件3
  • Function Call实战:用GPT-4调用天气API,实现实时信息查询
  • 2025年热门视频转文字工具测评,助你快速把视频转成文字稿!
  • 基于SpringBoot的家政保洁预约系统【2026最新】
  • C语言中calloc函数
  • flowable基础入门
  • PDF24 Creator:免费的多功能PDF工具
  • 数据可视化大屏精选开源项目
  • rh134第二章复习总结
  • 搭建机器学习模型的数据管道架构方案
  • 富士施乐DocuCentre S2110故障代码01
  • 机器学习 - 使用 ID3 算法从原理到实际举例理解决策树
  • 智能家居芯片:技术核心与创新突破