最简单的消息内存的使用流程
①ftok函数生成键值
②msgget函数创建消息队列
③msgsnd函数往消息队列发送消息
④msgrcv函数从消息队列读取消息
⑤msgctl函数进行删除消息队列
一个消息数据应该由以下一个结构体组成,举个例子
struct mymesg{long int mtype; //类,消息队列可以控制读取相应类型的数据,这时就不一定是先进先出的顺序了,文章后面会继续介绍char mtext[size_t]; //数据,传递的数据存放在这里面};
1.ftok函数生成键值
每一个消息队列都有一个对应的键值(key)相关联(共享内存、信号量也同样需要)。
所需头文件#include
函数原型 key_t ftok(const char *path ,int id);
path为一个已存在的路径名
id为0~255之间的一个数值,代表项目ID,自己取
返回值:成功返回键值(相当于32位的int)。出错返回-1
例如:key_t key = ftok( “/tmp”, 66);
2.msgget函数创建消息队列
所需头文件#include
函数原型 int msgget(key_t key,int flag);
key为ftok生成的键值
flag为所需要的操作和权限,可以