共享内存是在两个正在运行的进程之间传递数据的一种非常有效的方式。但是他并没有为我们提供同步的机制,因此我们需要用其他的机制来同步对共享内存的访问。对共享内存访问的同步控制必须要由程序员来控制。一种典型的应用是,我们用共享内存来提供对大块内存区域的有效访问,同时通过传递小消息来同步对该内存的访问。如果一个进程向共享内存段写入了数据,所做的改动立即被其他可以访问该共享内存的进程看到。
接口函数:
shmget函数创建共享内存;
第一次创建共享内存段时,他不能被任何进程访问。要想启动对该共享内存的访问,必须将其连接到一个进程的地址空间中。shmat函数来完成这部分工作,第二个参数一般设为0,表示让系统来选择共享内存出现的地址。
下面来看个例程,该例程第一个进程将创建一个共享内存段,然后把写到他里面的数据显示出来;第二个例程将连接一个已有的共享内存段,并允许我们向其写入数据。