在前面的博文中,我们认识到了进程间通信的两种方式--->管道点击打开链接以及消息队列点击打开链接,今天我们来看另一种方式---->共享内存
之前我们在剖析程序在内存中到底如何分配的时候,我们肯定见过下面的图
那,望文生义,linux中的共享内存是不是跟这块的共享内存区有关系呢?
【概念】
1、共享内存允许两个或多个进程共享一个给定的存储区,这一段村书去可以被两个或两个以上的进程映射到自身的地址空间,一个进程写入共享内存的信息,可以被其他使用这个共享内存的进程,通过简单的内存读取方式而读走,从而实现进程间通信。
2、优点:共享内存区是最快的IPC形式,不同于管道和消息队列等通信方式,它一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。
【数据结构】
struct shmid_ds {
struct ipc_perm shm_perm; /* operatio