为了账号安全,请及时绑定邮箱和手机立即绑定

【学习打卡】第5天 C气象数据中心 第二章 2-10节 linux共享内存

标签:
C C++

课程名称:C/C++气象数据中心实战,手把手教你做工业级项目


课程章节:2.10 linux共享内存


主讲老师: 吴从周



课程内容:

  1. 熟悉linux共享内存的概念和原理

  2. 介绍并通过实例演示linux共享内存的四种函数,分析函数的作用和运用。





课程收获:

  1. 共享内存是 Unix下的多进程之间的一种通信方法 ,这种方法通常用于一个程序的多进程间通信,实际上多个程序间也可以通过共享内存来传递信息。正常程序之间的内存是不允许相互访问的,但是共享内存允许多个程序访问同一快内存空间,共享内存区是最最高效的传递信息的IPC形式。在程序中我们通过指针映射进而操控读写共享内存内的文件。

  2. 共享内存的操作函数有四种。

    一. 创建共享内存函数shmget,这个函数用于获取共享内存,当没有时就创建共享内存。一般有三个参数,int shmget(key_t key , size_t size , int shmflag),第一个参数key是用来标识共享内存的,可以保证共享内存本身的唯一性。第二个参数是创建共享内存的大小。

    二. 建立共享内存与当前进程地址空间之间联系的shmat函数,其主要用处就是把共享内存链接到当前进程的地址空间,该函数的返回值是共享内存的地址,我们将该地址赋值给一个指针变量,即能实现够在当前进程中对共享内存进行读写的操作。

    https://img1.sycdn.imooc.com//62efbcbb0001773610030761.jpg

    三. 将共享内存与当前进程地址空间进行分离 shmdt函数,其作用为将共享内存与当前进程的联系断开。

    https://img1.sycdn.imooc.com//62efbcd700011ec908030327.jpg

    四. 释放共享内存   shmctl函数,  其主要目的就是将共享内存删除,将其所占用的空间进行释放,但是在实际操作中基本不会进行此操作。

  3. 我们可以通过ipcs和ipcrm命令对共享内存进行查看和删除等操作。




https://img1.sycdn.imooc.com//62efbd230001600c18290916.jpg


https://img1.sycdn.imooc.com//62efbd330001d68518360929.jpghttps://img1.sycdn.imooc.com//62efbd45000158f118010924.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消