一、查询IPC的命令
显示:
ipcs -a 显示所有共享内核对象
ipcs -m 显示共享内存 m = memory
ipcs -q 消息队列 q = queue
ipcs -s 显示信号量 s = semphore删除:
ipcrm -m ID 删除共享内存
ipcrm -q ID 删除共享队列
ipcrm -s ID 删除信号量
二、标识符和键
每个XSI IPC结构都有两个东西定位:外部到内核要用key,内核中使用ID标识。
key的生成:
- 使用宏IPC PRIVATE 做key,但这种方式无法实现进程间的通信(私有),极少使用。
- 把所有的key定义在一个头文件中,用宏定义。
- 使用ftok()函数生成key,参数:真实存在的路径和项目编号(0 - 255)。
ID的生成:
- IPC结构在内核中都用ID做唯一标识,创建/获取ID都有对应的函数。
- IPC结构都有一个特殊的操作函数,提供查询、修改和删除功能。
三、IPC结构:共享内存
每个进程内存独立的,无法直接访问。共享内存就是内核管理一段进程(物理内存),这段物理内存允许每个进程进行映射。
编程步骤: