黑基网 首页 服务器 Linux 查看内容

LINUX学习笔记——进程间通信4消息队列

2012-3-23 11:03| 投稿: Linux

摘要: a)         本质:消息链表 b)     &nbs...
a)         本质:消息链表 b)         分类: 1.         POSIX消息队列:可移植操作系统接口 2.         系统V:随内核持续的,只有在内核重启和人工删除,才会被删除。每个消息队列对应唯一的键值 c)         获取键值:Key_t ftok(char *pathname, char proj) 1.         作用:返回文件名对应的键值,本质是个文件 2.         #include<sys/types.h>, #include<sys/ipc.h> 3.         Pathname:文件名 4.         Proj:项目名,不为0即可 d)         获取描述字:int msgget(key_t key, int msgflg) 1.         #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/msg.h> 2.         Key:键值,由ftok获得 3.         Msgflg:标志位 a)         IPC_CREAT:若没有键值对应的消息队列,创建新的消息队列 b)         IPC_EXCL:与IPC_CREAT一同使用,若存在返回错误 c)         IPC_NOWWAIT:无法满足时,不阻塞 4.         返回值:文件描述符msgid e)         发送消息:int msgsnd(int msqid, struct msgbuf *msgp, int msgsz, int msgflg) 1.         #include<sys/types.h>, #include<sys/ipc.h>,#include<sys/msg.h> 2.         Msqid:消息队列描述符 3.         Msgp:存放消息的结构: a)         struct msgbuf b)         {long mtype;  消息类型,自己定义,一个类型可以存放多条消息 c)         Char mtext[1];}  消息数据首地址 4.         Msgsz:长度 5.         Msgflg:标志,IPC_NOWAIT:指明在消息队列没有足够空间容纳要发送的消息的时候,是否等待 f)          接收消息:int msgrcv(int msqid, struct msgbuf *msgp, int msgsz,long msgtype, int msgflg) 1.         作用:从消息队列中读取msgtype类型的消息,消息被读取之后就没有了。 2.         其它同上: 3.         消息长度:length=sizeof(struct mymsgbuf)-sizeof(long)
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册黑基账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!



免责声明:本文由投稿者转载自互联网,版权归原作者所有,文中所述不代表本站观点,若有侵权或转载等不当之处请联系我们处理,让我们一起为维护良好的互联网秩序而努力!联系方式见网站首页右下角。


鲜花

握手

雷人

路过

鸡蛋

相关阅读

最新评论


新出炉

返回顶部