共享内存便是在内存里申请一块空间,这块空间可以有多个进程拥有,其申请的空间必须是4096的整数倍,可以读写数据,其效率是system V 版本中几种通信方式间最高效的,但它的同步与互斥需要自己来维护,因此其常与信号量结合起来使用。

下面是一个简单的实现:

  shm.h

wKioL1cPooXTJGeMAAA-MCJolek883.jpg

shm.c

wKiom1cPodCCMxfnAABhQGflhdU716.jpg

wKiom1cPodGS2XSnAAAYQ9AhkvI718.jpg

测试函数:

wKioL1cPoouDeRYhAABRDw44y3w617.jpg

wKioL1cPoo2gxdG0AAAhbs9zffM437.jpg

运行结果:

wKiom1cPodrAxVlyAAAKOUI8x8A460.jpg