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

跨境电商官方网站建设网页设计作品集

跨境电商官方网站建设,网页设计作品集,寮步镇仿做网站,建设部住房城乡建设厅网站概念 消息队列#xff0c;是消息的链接表#xff0c;存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。 特点 1.消息队列是面向记录的#xff0c;其中的消息具有特定的格式以及特定的优先级。#xff08;消息队列是结构体#xff09; 2.消息队列独立于发送与接…概念 消息队列是消息的链接表存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。 特点 1.消息队列是面向记录的其中的消息具有特定的格式以及特定的优先级。消息队列是结构体 2.消息队列独立于发送与接收进程。进程终止时消息队列及其内容并不会被删除。 3.消息队列可以实现消息的随机查询,消息不一定要以先进先出的次席读取,也可以按消息的类型读取。 两者的队列ID需相同才能成功实现存放数据和取数据如图都指向队列1的最后一个。 消息队列与管道的不同点写入读取后内容还存在于Linux内核中不会跟管道一样读取完就消失。 创建 从消息队列特点可知两个进程分别需要同队列ID相同的队列进行写入数据并读取数据此时要想成功创建一个消息队列需关心两个问题 问题一进程B如何添加消息到队列 问题二进程A如何读取队列的消息 头文件 #include sys/msg.h 常用API msgget() 创建或打开消息队列成功返回队列ID失败返回-1 int msgget(key_t key, int flag); key是一个索引值为非负数将通过索引值在Linux内核找到队列flag打开队列的方式 在以下两种情况下msgget将创建一个新的消息队列 1、如果没有与键值key相对应的消息队列并且flag中包含了IPC_CREAT标志位。 msgget(key,IPC_CREAT); 2、key参数为IPC_PRIVATE。 msgget(key,IPC_PRIVATE);msgsnd() 添加消息成功返回0失败返回-1 int msgsnd(int msqid, const void *ptr, size_t size, int flag);msqid消息队列的ID ptr写入的数据指向消息缓冲区的指针此位置用来暂时存储发送和接收的消息是一个用户可定义的通用结构形态如下 struct msgbuf {long mtype; //消息类型必须大于0char mtext[1];//消息文本 }; size数据的长度 flag0,表示忽略表示进程将被阻塞直到函数可以从队列中得到符合条件的消息为止还有许多此处省略 msgrcv() 读取消息成功返回消息数据的长度失败返回-1 int msgrcv(int msqid, void *ptr, size_t size, long type,int flag);msqid消息队列的ID ptr写入的数据指向消息缓冲区的指针此位置用来暂时存储发送和接收的消息是一个用户可定义的通用结构形态如下 struct msgbuf {long mtype; //消息类型必须大于0char mtext[1];//消息文本 }; type消息类型 type  0返回队列中的第一个消息type 0返回队列中消息类型为 type 的第一个消息type 0返回队列中消息类型值小于或等于 type 绝对值的消息如果有多个则取类型值最小的消息 可以看出type值非 0 时用于以非先进先出次序读消息。也可以把 type 看做优先级的权值。 size数据的长度 flag0,表示忽略表示进程将被阻塞直到函数可以从队列中得到符合条件的消息为止还有许多此处省略 代码展示 get.c #include stdio.h #include sys/types.h #include sys/ipc.h #include sys/msg.hstruct msgbuf {long mtype;char mtext[128]; };int main() {int msgId;//创建消息队列IDstruct msgbuf readBuf;//定义一个读取数据的结构体msgId msgget(1234,IPC_CREAT|0777);//在内核中打开或建立键值为1234的权限为0777的消息队列if(msgId -1)//如果创建失败则执行下面代码{printf(create queue failed\n);}msgrcv(msgId,readBuf,sizeof(readBuf.mtext),888,0);//从队列中获取888类型的数据并存放到结构体的mtext中如果队列中未出现888类型的数据则程序阻塞在这里这里的888需要与写入队列类型数据一致printf(read from queue:%s\n,readBuf.mtext);struct msgbuf sendBuf {999,thank you for reach\n};//读取完毕后将字符串内容写入到999类型的数据中这里的999类型需要与读取的类型数据一致msgsnd(msgId,sendBuf,strlen(sendBuf.mtext),0);//将上一行的结构体数据写入1234消息队列中return 0; }send.c #include stdio.h #include sys/types.h #include sys/ipc.h #include sys/msg.h #include string.hstruct msgbuf {long mtype;char mtext[128]; };int main() {int msgId;struct msgbuf sendBuf {888,this is message from queue\n};//将字符串内容写入到888类型的数据中这里的888类型需要与读取的类型数据一致struct msgbuf readBuf;msgId msgget(1234,IPC_CREAT|0777);if(msgId -1){printf(create queue failed\n);}msgsnd(msgId,sendBuf,strlen(sendBuf.mtext),0);//将结构体内容写入到1234消息队列中msgrcv(msgId,readBuf,sizeof(readBuf.mtext),999,0);//写入之后从队列中获取999类型的数据并存放到结构体的mtext中如果队列中未出现999类型的数据则程序阻塞在这里这里的999需要与写入队列类型数据一致printf(return form queue:%s\n,readBuf.mtext);return 0; }运行get.c创建并打开键值为1234的消息队列但此时表现为堵塞状态因为队列里没有888类型的数据 运行send.c创建并打开键值为1234的消息队列往队列里写入888类型的数据此时接收端会接受到写入端写入消息队列的数据并将其读取同时让接收端往队列里写入999类型的数据让写入段接受999类型的数据并读取
http://www.zqtcl.cn/news/5614/

相关文章:

  • google建网站花园之家wordpress
  • 为客户做网站的方案做代练网站能备案
  • 杭州市建设住房保障局网站wordpress和帝国
  • 绵阳做网站的公司开发板公测的更新频率
  • 北京做网站价格网站模板下载软件
  • 网站开发 商城开发最新经济新闻
  • 哪里有服务好的网站建设公司软件工程就业方向
  • 怎么用ps做静态网站网络推广怎么做的
  • 顺德网站设计制作wordpress用户发文章
  • 沈阳营销型网站廊坊网站关键词推广
  • 廊坊网站建设招聘网站后台的网址忘记了
  • 数字资产币币交易所网站开发英国公司注册
  • 宁波优化网站排名公司推荐wordpress单页展示主题
  • 中文外贸网站有哪些江苏固茗建设有限公司网站
  • 山东省建设工程电子信息网站注册1千万的公司需要多少钱
  • 中国十大热门网站排名辽宁建设工程信息网为什么上不去啦
  • 无锡网站建设哪家专业wordpress建不了网站
  • 欣赏别人做的网站中国站免费推广入口
  • 企业宣传片制作多少钱网站优化需要哪些工具
  • 做360网站快速排名软件织梦 5.7网站地图
  • 做淘宝客网站服务器360弹出网站
  • 网站开发需要多少钱如何宁波做网站排名的公司有哪些
  • 宝华路桥建设集团网站建设通网站有建筑公司名录大全
  • 网站开发设计选题背景陕西省泰烜建设集团有限公司网站
  • 免费网站软件下载如何做网站网页流程
  • 上外网看新闻去哪个网站wordpress 打赏js
  • 江苏网站建设案例大足网站设计
  • 如何做淘客网站源码网站加水印
  • 江苏建设科技网站网站开发及运营代理协议范本
  • 建立一个同城网站要怎么做wordpress 多语言插件哪个好