目录

  • 一、学习的知识点
    • 1 回顾
      • 1.1 回顾
      • 调试
    • 2 共享内存
      • 2.1 函数
  • 二、上课没有听懂或者没有理解的地方
  • 三、当天学习的收获

一、学习的知识点

1 回顾

1.1 回顾

  1. 消息队列可以接收指定类型的消息,而不全是根据消息的先后
  2. 系统默认最大消息队列个数 16个 msgmni 可修改
  3. msgmax 一个消息里面消息的内容最大不超过8198
  4. msgmnb 一个队列总的消息内容的长度 16384
  5. 消息队列的删除 msgctl(msgid,IPC_RMID,null);
typedef struct MSG_BUF{long mtype;char mtext[64];
}char* str = "lisi";  //str是变量,在栈区,存放指向RO段的地址,lisi是常量 在RO段,不可修改,
char str2[16] = { "wnagwu" };//字符数组,在栈区,laowng存在str2的地址中,可修改
//char* str1 = (char*)malloc(16); //在堆区 程序员开辟,可修改
strcpy(str, "hello"); //会报错
strcpy(str2, "world");

gdb调试

  1. 编译时加上-g g++ -g main.cpp -o man,-g支持GDB调试
  2. gdb man 进入GDB调试
  3. l 或list 查看
  4. b 哪一行 在对应行打断点
  5. r 运行
  6. p 要查看的变量的值
  7. n 下一步
  8. q 退出

调试

core 文件调试 1 工程较大时使用 2 想快速定位段错误
步骤

  1. 编译时 -g
  2. 设置core文件大小 默认为0 不生成core文件 ulimit -c unlimiter
  3. 运行程序 知道报段错误
  4. gdb a.out core


2 共享内存

  1. 共享内存速度在数据读取上速度最快
  2. 跑起来才有内核,共享内存是内核里面的一片内存,这片内存的大小由程序员决定,没有大小限制

2.1 函数

int shmid = shmget(1234, 1024, IPC_CREAT); //打开共享内存的链接
cout << "shmid" << shmid << endl;
char* addr = (char*)shmat(shmid, 0, 0); //挂载  返回共享内存的地址
cout << "addr" << addr << endl;
strcpy(addr, "OMO2007");

二、上课没有听懂或者没有理解的地方

三、当天学习的收获

常量与局部变量的存储位置及区别,共享内存

210129阶段三调试、进程间通信-共享内存相关推荐

  1. 操作系统实验报告6:进程间通信—共享内存

    操作系统实验报告6 实验内容 实验内容:进程间通信-共享内存. (1).验证:编译运行课件 Lecture 08 例程代码: Linux 系统调用示例 reader-writer 问题:Algorit ...

  2. Linux下进程间通信--共享内存:最快的进程间通信方式

    内存共享最新整理: Linux下进程间通信-共享内存 - 码到城攻共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式https://www.codecomeon.com/posts/109/ ...

  3. 【Linux】Linux进程间通信——共享内存/消息队列/守护进程

    文章目录 进程间通信--共享内存/守护进程 一, 共享内存 1. 共享内存概念 2. 共享内存使用 1. 共享内存使用步骤 2. 共享内存操作函数 3. 共享内存常用操作命令 4. 共享内存使用示例: ...

  4. 操作系统实验报告7:进程间通信—共享内存。实现一个带有n个单元的线性表的并发维护。

    操作系统实验报告7 实验内容 实验内容:进程间通信-共享内存.实现一个带有n个单元的线性表的并发维护. 建立一个足够大的共享内存空间(lock, M),逻辑值lock用来保证同一时间只有一个进程进入M ...

  5. C# 进程间通信(共享内存)

    原文:C# 进程间通信(共享内存) 进程间通信的方式有很多,常用的方式有: 1.共享内存(内存映射文件,共享内存DLL). 2.命名管道和匿名管道. 3.发送消息 本文是记录共享内存的方式进行进程间通 ...

  6. Linux基础入门--进程间通信--共享内存

    Linux基础入门--进程间通信--共享内存 1.共享内存IPC原理 2.共享内存管理 1.共享内存IPC原理 共享内存进程间通信机制主要用于实现进程间大量的数据传输,共享内存是在内存单独开辟的一段内 ...

  7. 【Linux】进程间通信-共享内存

    前言 我们知道,在Linux中,进程是相互独立存在的,不存在直接让进程之间互相通信的方式.但是如果我们能让不同进程之间见到同一块内存,也就是都能读写这片区域是不是就能够达到进程间通信呢? 事实证明确实 ...

  8. python多进程共享内存_python 进程间通信 共享内存

    python多进程通信实例分析 python多进程通信实例分析操作系统会为每一个创建的进程分配一个独立的地址空间,不同进程的地址空间是完全隔离的,因此如果不加其他的措施,他们完全感觉不到彼此的存在.那 ...

  9. linux篇【9】:进程间通信(共享内存)——<后序>

    目录 一.system V共享内存--先让不同的进程看到同一份资源 1.共享内存原理 监控共享内存脚本 2.创建/获取 共享内存接口-shmget函数(shared memory get) 3.参数k ...

最新文章

  1. Java多线程之Lock接口
  2. 机器学习中的规则化范数(L0, L1, L2, 核范数)
  3. 《算法竞赛入门经典》计算组合数问题
  4. C#-interface
  5. 花花酱leetcode 题目——搜索专题
  6. 2011年华科计算机考研复试笔试算法、数据库(回忆版)
  7. PHP的IMAP函数
  8. Oracle基础(六) 数据类型
  9. inc si指令的作用_【Vue】Re04 指令:第二部分 - emdzz
  10. ubuntu server 18.04 和 20.04 安装 RabbitMQ
  11. 教师计算机培训汇报ppt,教师培训工作总结ppt模板
  12. 计算机操作系统进程管理总结
  13. HBase流程框架图
  14. 图扑 TopLink 边缘组态
  15. Missionaries from the global south try to save the godless West
  16. .NET 串口通信(转)
  17. Java图结构-模拟校园地图-迪杰斯特拉(Dijkstra)算法求最短路径 #谭子
  18. python 2 入门
  19. 已经拍好的视频怎么加水印?视频加水印方法大分享
  20. OpenLayers基础

热门文章

  1. Linux (x86) Exploit 开发系列教程之七 绕过 ASLR -- 第二部分
  2. 迁移Azure web site实践 (三),Azure web site迁移
  3. Android Navigation Drawer样式抽屉的使用
  4. VMware vSAN紧盯虚拟化应用
  5. 如何搞定putty乱码
  6. A English version for my blog start.
  7. 他爬取了B站所有番剧信息,发现了这些……
  8. linux png pdf,将多页PDF转换为PNG并返回(Linux)
  9. java 生成sql脚本_java导出insert语句并生成sql脚本
  10. Jasypt 加密-引言