码迷,mamicode.com
首页 > 其他好文 > 详细

消息队列(msg)

时间:2016-04-17 23:29:06      阅读:365      评论:0      收藏:0      [点我收藏+]

标签:linux 消息队列 msg

一、消息队列:从一个进程向另一个进程发送数据块,读取不一定是先入先出。

    管道与消息队列区别:管道基于字节流的,消息队列基于消息;

                        管道只能发送字符串,消息队列有类型;

                        管道随进程,消息队列随内核。

二、创建函数原型:int msgget(key_t key, int msgflg);    //key由ftok生成,IPC_CREAT|IPC_EXCL

    接收消息:ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);

    发送消息:int msgsnd(int msqid, const void *magp, size_t msgsz, int msgflg)               /*  

     *   msqid:消息队列标识码;  msgp:指向缓冲区的指针,暂时存储消息;

     *   msgsz:消息大小;        msgtyp:读取的消息形态,0表示消息队列中的消息都会读取

     *   msgflg:0表示队列满或者空时,采用阻塞等待方式;IPC_NOWAIT表示不做等待,立即返回

     */

      struct msgstru

      {

            long mtype;

            char metext[];

       }


三、代码实现:


四、实现结果:

消息队列(msg)

标签:linux 消息队列 msg

原文地址:http://green906.blog.51cto.com/10697569/1764788

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!