从品牌网站建设到网络营销策划,从策略到执行的一站式服务
什么是消息队列?
托里ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!消息队列提供了一种从进程向另一个进程发送一个数据块的方法。每个数据块都被认为是有一个类型,接收者进程的数据块可以有不同的类型值。
消息队列与管道的区别:消息队列是基于消息的,而管道是基于字节流的,且消息队列的读取不一定是先入先出。
相关函数
创建新消息队列或取得已存在消息队列
返回值:成功,返回消息队列的标识符
失败,返回-1
第一个参数:消息队列对象的关键字,函数将它与已有的消息队列对象的关键字进行比较来判断消息 队列是否已经创建。由函数ftok()得来。
第二个参数:控制函数的具体操作。可以取以下几个值:
IPC_CREAT:如果消息队列不存在则创建,否则直接打开。
IPC_EXCL:单独使用无意义。
IPC_CREAR | IPC_EXCL :消息队列时新创建的。
3. ftok函数
函数ftok把一个已存在的路径名和一个整数标识得转换成一个key_t值,称为IPC键。
key_t ftok(const char* patnname,int id);
pathname:路径必须存在且可以访问
id: 低8位
4. 向队列读/写消息
msgsnd将数据放到消息队列中,msgrcv从队列中取消息
msqid: 消息队列的标识符
msgp: 指向消息缓冲区的指针,此位置用来暂时存储发送和接受的消息,是用户定义的通用的结构。
msgsz:消息的大小
msgtyp:从消息队列内读取的消息形态。若为0,则消息队列中的所有消息都被取完。
msgflg: msgflg为0时,msgsnd()和msgrcv()在队列呈满或空的情形时,采取阻塞等待的处理模式。
msgflg和常数连用时,msgsnd()执行时若队列满,msgrcv()将不会阻塞,而是返回-1,若 执行msgrcv(),则在消息队列呈空时,等待不做返回-1.
5. 设置消息队列的属性
函数原型: int msgctl(int msgqid,int cmd,struct msqid_ds *buf);
对msgqid标识的消息队列执行cmd操作。cmd操作分三种:IPC_STAT,IPC_SET,IPC_RMID
IPC_STAT:该命令用来获取消息队列对应的msqid_ds数据结构,并将其保存到buf指定的地址空间。
IPC_SET:该命令用来设置消息队列的属性,要设置的属性存储在buf中。
IPC_RMID:从内核中删除msqid标识的消息队列。
6. 查看消息队列 ipcs -q
删除消息队列 ipcrm -q semid
“comm.h”
“comm.c”
“client.c”
“server.c”
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图