- 18
- 0
- 约4.88千字
- 约 4页
- 2017-08-21 发布于重庆
- 举报
操作系统实验消息队列.doc
实验六 消息队列
一.1.消息队列可以认为是一个消息链表。有足够写权限的进程可向队列中放置消息,有足够读权限的进程可以从队列中取走消息。每个消息是一个记录,它有发送者赋予一个优先级。在某个进程向一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达。
2.实现消息队列的相关系统调用函数:
(1)msgget(): 如果希望创建一个新的消息队列,或者希望存取一个已经存在的消息队列,你可以使用系统调用msgget()。
系统调用:msgget();
原型:intmsgget(key_t key,int msgflg);
返回值:如果成功,返回消息队列标识符
如果失败,则返回-1:errno=EACCESS(权限不允许)
EEXIST(队列已经存在,无法创建)
EIDRM(队列标志为删除)
ENOENT(队列不存在)
ENOMEM(创建队列时内存不够)
ENOSPC(超出最大队列限制)
第一个参数是关键字值(通常是由ftok()返回的)。然后此关键字值将会和其他已经存在于系统内核中的关键字值比较。这时,打开和存取操作是和第二个参数msgflg中的内容相关的。
第二个参数的取值:
IPC_CREAT:如果内核中没有此队列,则创建它。
原创力文档

文档评论(0)