消息队列进行通信的一些操作:
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
功能:将文件名转换成键值

本文详细介绍了进程间通信中使用消息队列的方法,包括msgget()创建打开队列,msgrcv()读取数据,msgsnd()写入数据,以及msgctl()控制消息队列。通过示例代码解析了msgget、ftok、msgsnd、msgrcv和msgctl等函数的使用,阐述了各自的功能和参数说明。
最低0.47元/天 解锁文章
482

被折叠的 条评论
为什么被折叠?



