存放在内存中,由内核维护
特点
- 消息队列允许一个或多个进程向它写入或读取消息,并且每条消息有类型
- 消息队列可以实现消息的随机查询,消息不一定以先进先出的次序读取,编程时可以按消息的类型读取
- 与无名管道、有名管道一样,从消息队列中读出消息,消息队列中的数据会删除
- 消息队列中的消息是有格式的
- 只有内核重启或人工删除,消息才会删除
- 消息队列标识符,用来标识消息队列。
- Linux操作系统中消息队列限制值如下:
- 消息队列个数最多为16个
- 消息队列总容量最多为16384字节
- 每个消息内容最多为8192字节
- System V提供的IPC通信机制需要一个key值,通过key值就可在系统中获得一个唯一的消息队列ID
- key值可以人为指定,也可以通过ftok函数获得
获得项目相关的唯一IPC键值
头文件
#include <sys/types.h>
#include <sys/ipc.h>
函数
key_t ftok(const char *pathname, int proj_id);
参数: