消息队列进行通信的一些操作:
1、使用msgget()函数创建打开队列;
2、使用msgrcv()函数从队列中读数据;
3、使用msgsnd()函数写数据到队列中;
4、使用msgctl()函数控制消息队列。
以下是消息队列中使用到的一些函数:
1、msgget
功能:创建消息队列
头文件:#include <sys/types.h>
#include <sys/msg.h>
#include <sys/ipc.h>
原型:int msgget(key_t key,int msgflg)
说明:key为键值,可设置成常数IPC_PRIVATE,或由ftok获取;
msgflg是标志位,设定的权限,
标志位如下:IPC_CREAT,创建新的队列;
IPC_EXCL,与IPC_CREAT一起使用,表示如果要创建的消息队列已经存在,则返 回错误;
IPC_NOWAIT,读写消息队列要求无法达到满足时,立即返回,不会出现堵塞
参数key虽然设置成常数IPC_PRVATE并不意味着其他进程不能访问该消息队列,只是意味着即将创 建新的消息队列。
返回值:成功返回消息队列描述字;
失败返回-1.
2、ftok
功能:将文件名转换成键值