进程

创建打开消息队列msgget()
读数据从队列msgrcv()
写数据到队列msgsnd()

控制消息队列msgctl()

目前主要有两种类型的消息队列:
   POSIX消息队列以及系统V消息队列,系统V消息队列目前被大量使用

系统V消息队列是随内核持续的,只有在内核重起或者人工删除时,该消息队列才会被删除

#include <sys/types.h>
   #include <sys/ipc.h>
   key_t ftok (char*pathname, char proj)


功能:   返回文件名对应的键值。
  pathname:  文件名
  proj:     项目名(不为0即可)

#include <sys/types.h>
   #include <sys/ipc.h>
   #include <sys/msg.h>
   int msgget(key_t key, int msgflg)


key:键值,由ftok获得。
   msgflg:标志位。
返回值:与健值key相对应的消息队列描述字

IPC_CREAT
   创建新的消息队列
IPC_EXCL
   与IPC_CREAT一同使用,表示如果要创建的消息队列已经存在,则返回错误。
IPC_NOWAIT
    读写消息队列要求无法得到满足时,不阻塞

在以下两种情况下,将创建一个新的消息队列:
1、如果没有与健值key相对应的消息队列,并且 msgflg中包含了IPC_CREAT标志位。
2、key参数为IPC_PRIVATE

int open_queue(key_t keyval)
   {
int qid;
if((qid=msgget(keyval,IPC_CREAT))==-1)
  {
return(-1);
          }
return (qid);
   }






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值