继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

一点积分
关注TA
已关注
手记 29
粉丝 5
获赞 2

课程名称: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函数,其主要用处就是把共享内存链接到当前进程的地址空间,该函数的返回值是共享内存的地址,我们将该地址赋值给一个指针变量,即能实现够在当前进程中对共享内存进行读写的操作。

    http://img1.mukewang.com/62efbcbb0001773610030761.jpg

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

    http://img.mukewang.com/62efbcd700011ec908030327.jpg

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

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




http://img4.mukewang.com/62efbd230001600c18290916.jpg


http://img1.mukewang.com/62efbd330001d68518360929.jpghttp://img2.mukewang.com/62efbd45000158f118010924.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP