Linux进程间通信——共享内存
相关知识参考: 1、 http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index1.html 2、 http://www.ibm.com/developerworks/cn/linux/l-ipc/part5/index2.html 下面的范例及描述来源http://www.cnblogs.com/feisky/archive/2010/03/24/1693488.html 最原始出处不详。 并进行了少许修改 一、基础知识: 共享内存是运行在同一台机器上的进程间通信最快的方式,因为数据不需要在不同的进程间复制。通常由一个进程创建一块共享内存区,其余进程对这块内存区进行读写。共享内存往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。 首先要用的函数是shmget,它获得一个共享存储标识符。 #include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h> int shmget(key_t key, int size, int flag); 这 个函数有点类似大家熟悉的malloc函数,系统按照请求分配size大小的内存用作共享内存。Linux系统内核中每个IPC结构都有的一个非负整数的 标识符,这样对一个消息队列发送消息时只要引用标识符就可以了