查看当前系统中所有创建的IPC对象
1、ipcs 查看当前系统中所有创建的IPC对象
2、ipcs -q 查看创建的消息队列
3、ipcs -m 查看创建的共享内存段
4、ipcs -s 查看创建的信号量数组
5、ipcrm 删除IPC对象
例如:ipcrm -q msqid 删除标号为msqid的消息队列
SYstem V提供的IPC通信机制需要一个key值,通过key值就可在系统内获得一个唯一的消息队列标识符。
key值可以是人为指定的,也可以通过ftok函数获得。
如果多个进程想通过IPC对象通信,则必须找到唯一的标识,而唯一的标识是由key决定的,所以只要key知道,则就可以实现多个进程通信。
ftok函数
#include<sys/types.h>
#include<sys/ipc.h>
key_t ftok(const char *pathname,int proj_id);
功能:
**pathname:**任意一个文件名(文件名或者目录名)
**proj_id:**目标值,范围一般是0~127
返回值:
成功:键值
失败:返回 -1
案例代码:
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/ipc.h>
int main()
{
key_t mykey;
if(mykey = ftok(".",10) == -1)
{
perror("fail to ftok");
exit(1);
}
printf("key = %#x\n",mykey);
return 0;
}
执行结果: