目录:
1.前言
2.共享内存
3.认识接口
-------------------------------------------------------------------------------------------------------------------------
1.前言
我们之前学的什么匿名管道、命名管道通信都是基于文件的通信方式!!
接下来我们要学的就是SystemV标准进程间通信方式
我们之前来看,有一个小问题就是,想让进程间通信的前提就是让不同进程看到同一份资源,而同一份资源都是由操作系统提供的,操作系统能用现成的资源比如文件,就用文件
可是如果我不想用基于文件的方式通信呢??那么此时SystemV标准诞生了
2.共享内存
两进程之间数据结构互相独立,物理内存当中代码和数据又互相独立,所以两个进程不会互相干扰,这叫做进程具有独立性
我们进行进程间通信,第一步通过某种调用,在内存当中创建一份内存空间
第二步 通过某种调用,让进程“挂接”到这份新开辟的内存空间上!!
3.认识接口
1.shmget
chmget返回值:如果调用成功,返回一个合法的共享内存标识符,如果失败返回-1
所以你怎么保证不同的进程看到的是同一个共享内存呢??
只要我们的形成key的算法+原始数据是一样的,形成同一个ID!!!
---------------------------------------------------------------------------------------------------------------------------------
形成相同的key,能够帮助进程在相同当中找到同一个共享内存
如何查看我们刚刚创建的共享内存?? ipcs -m
我们命令的方式删除共享内存
如果我们自己作为程序员想删呢共享内存呢??
--------------------------------------------------------------------------------------------------------------------------------
2. shmctl
3.shmat 、 shmdt
-----------------------------------------------------------------------------------------------------------------