当前位置: 首页 > news >正文

彩票网站开发 晓风网站开发的前后端是哪些

彩票网站开发 晓风,网站开发的前后端是哪些,电子商务网站建设评估工具有哪些,国内正规seo网络推广文章目录 消息队列的概念消息队列的出队特点消息队列函数接口获取消息队列向消息队列发送消息接收消息操作消息队列的接口 代码演示ipcs命令 消息队列的概念 消息队列提供进程间数据块传输的方法#xff0c;传输的每一个数据块都认为是有类型的#xff0c;不同的数据块是有优… 文章目录 消息队列的概念消息队列的出队特点消息队列函数接口获取消息队列向消息队列发送消息接收消息操作消息队列的接口 代码演示ipcs命令 消息队列的概念 消息队列提供进程间数据块传输的方法传输的每一个数据块都认为是有类型的不同的数据块是有优先级的 系统中可能有很多的msgqueue, 每个MQ用消息队列描述符(消息队列ID: qid) 来区分qid是唯一 的用来区分不同的MQ。 消息队列的出队特点 消息队列中的数据都是先进先出的整个队列中的数据是用链表组织起来的。 消息队列的每一个元素都是有类型的用类型可以区分不同的消息可以按照消息类型先进先出也可以按照原本队列的顺序先进先出 消息队列函数接口 获取消息队列 int msgget(key_t key, int msgflg);功能以特定的消息队列标识符创建一个消息队列并返回消息队列的操作句柄 头文件sys/types.h、sys/ipc.h、sys/msg.h 参数 key消息队列的标识符msgflg:创建的标志可以按位或上一个权限8进制的数字IPC_CREAT若共享内存不存在则创建IPC_EXCL与IPC_CREAT一同使用为了确保共享内存已经存在时会报告错误 返回值:成功返回队列ID失败返回-1并设置erron 向消息队列发送消息 int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);参数 msgid消息队列IDmsgp指向msgbuf的指针用来指定发送的消息。操作系统为该函数发送的消息定义了发送格式只是定义了一部分另一部分要程序员自己去定义msgsz要发送消息的长度消息内容的长度这个参数的取值并不是整个struct msgbuf结构体的大小而是结构中mtext的大小 msgflg创建标记0阻塞发送IPC_NOWAIT非阻塞发送如果指定IPC_NOWAIT失败会立即返回 接收消息 ssize_t msgrcv(int msqid, void *msgp, sizet msgsz, long msgtyp, int msgflg)头文件sys/types.h、sys/ipc.h、sys/msg.h 参数: msqid:消息队列IDmsgp:指向msgbuf的指针用来接收消息出参msgsz:要接收消息的长度 注意:参数msgsz 指定由msgp 参数指向的结构的成员mtext的最大大小(以字节为单位)msgtyp接收消息的方式 msgtyp解释msgtyp 0读取队列中的第一条消息就相当于不区分类型按照插入的顺序先进先出msgtyp 0读取队列中类型为msgtyp 的第一条消息除非在msgflg中指定了MSG_ EXCEPT, 否则将读取类型不等于msgtyp的第一条消息msgtyp 0读取队列中类型小于或等于msgtyp 绝对值的第一条消息 msgflg创建标记0阻塞发送IPC_NOWAIT非阻塞发送如果指定IPC_NOWAIT失败会立即返回 返回值: 成功返回实际读取消息的字节数失败返回-1并设置erron 操作消息队列的接口 int msgctl(int msqid, int cmd, struct msqid_ ds *buf);参数: msqid:消息队列IDcmd:控制命令例如IPC_ RMID删除命令 IPC STAT获取状态buf:存储消息队列的相关信息的buf 返回值: 成功根据不同的cmd有不同的返回值失败返回-1并设置erron 从消息队列中拿数据和从共享内存中拿数据不一样是直接取走数据不是拷贝走 代码演示 往消息队列中发送消息 1 #include stdio.h2 #include unistd.h3 #include sys/msg.h4 struct Msgbuf{5 long mtype;6 char mtext[255];7 };8 int main(){9 /*10 * 目的往消息队列当中发送消息11 *12 * 做法13 * 1. 创建消息队列14 * 2. 组织要发送的消息并且发送出去15 * 1 send msg116 * 2 : send msg217 * 3 : send msg318 * 4 : send msg419 * ...20 * */ 21 int qid msgget(0x78787878, IPC_CREAT | 0664);22 if(qid 0){23 perror(msgget);24 return 0;25 }26 27 for(int i 0; i 10; i){28 //i [0, 9]29 struct Msgbuf mb;30 mb.mtype i;31 snprintf(mb.mtext, sizeof(mb.mtext), send msg%d, i);32 msgsnd(qid, mb, sizeof(mb.mtext), 0);33 }34 return 0;35 }从发送队列中接收消息 1 #include stdio.h2 #include unistd.h3 #include sys/msg.h4 5 struct Msgbuf{6 long mtype;7 char mtext[255];8 };9 10 int main(){11 /*12 * 目的从消息队列当中获取消息13 *14 * 做法15 * 1. 获取或者创建消息队列16 * 2. 调用msgrecv函数进行获取消息17 * 3. 打印获取到的消息内容18 * send msg119 * send msg220 * .... 21 *22 * 4 : send msg423 * */24 int qid msgget(0x78787878, IPC_CREAT | 0664);25 if(qid 0){26 perror(msgget);27 return 0; 28 }29 struct Msgbuf mb;30 31 msgrcv(qid, mb, sizeof(mb.mtext), 5, 0); // send msg532 printf(%s\n, mb.mtext);33 msgrcv(qid, mb, sizeof(mb.mtext), 6, 0); // send msg634 printf(%s\n, mb.mtext);35 msgrcv(qid, mb, sizeof(mb.mtext), 7, 0); // send msg736 printf(%s\n, mb.mtext);37 return 0;38 } 执行结果 ipcs命令 用该命令查看一下 ipcrm -q [qid] 可删除消息队列 消息队列的生命周期跟随操作系统内核
http://www.hkea.cn/news/14417979/

相关文章:

  • 我要建立自己的网站google google
  • 网站建设与管理维护龙岩古田
  • 如何优化网站图片大小网店 网站建设策划书
  • 河南网站建设的详细策划设计投稿网站
  • 东莞凤岗企业网站建设推广wordpress找不到php的拓展
  • 杭州装饰网站建设网站开发学多久
  • 单页网站建站郑州电商网站设计
  • 推进网站集约化建设制度软件开发专业排名
  • 信誉好的龙岗网站设计网页维护
  • 人与狗做的网站谁有贵州seo策略
  • 提供零基础网站建设教学在哪里男通网站哪个好用
  • 国家企业网查询seo和sem是什么
  • 武威市建设厅网站网站界面设计应遵循的原则
  • php cms网站主机托管服务
  • 做那个的网站网站建设情况自查报告
  • 简述php网站开发流程图什么是二次开发
  • 门户网站后台建设模块成都的网站建设公司
  • 查网站权重河北教育网站建设
  • 网站引导视频怎么做增加浏览量的软件
  • cydia软件源网站开发wordpress多站点建站
  • 如何优化网站导航国外网站后台模板下载
  • wordpress手机图片站中南建设
  • 娱乐网站开发崇明手机网站建设
  • 新闻列表做的最好的网站杭州专门做网站
  • 网站footer内容wordpress 无法自定义
  • 建设厅网站装修合同模板seo优化排名教程百度技术
  • 深圳网络推广建站徐州最好网站建设
  • 网上营销型网站wordpress 后台开发
  • asp网站模板免费下载京东商城网官网 网上购物平台
  • 济南做网站个人logo制作软件哪个好