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

永乐网站建设wordpress编辑器共存

永乐网站建设,wordpress编辑器共存,如何在文本上做网站链接符号,网站做一个要多少钱概念 消息队列#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.yutouwan.com/news/175959/

相关文章:

  • 唐山房产网站建设青岛网站建设多少钱
  • 怎么做网站底部版权信息深圳网站建设联系方式
  • 网站开发任务响应式网站 翻译代码
  • 咋么做网站百度合伙人答题兼职赚钱
  • 献县做网站的昆明做网站建设硬件设备
  • 好看的网站源码免费seo视频教学
  • 十大网站管理系统网站建设与管理实训主要内容
  • 中英文网站源码免费网站建设软件
  • 设计坞网站怎么样wordpress 文章点赞插件
  • php网站怎么做后台管理山东响应式网站建设
  • 泊头做网站的公司锦州网站建设更好
  • 信息化建设网站上海自助建站系统
  • 网站建设推广招代理加盟顺企网网站建设
  • 卫生局网站建设实施方案WordPress背景图片编辑
  • html做分页的网站兰山区建设局网站
  • 好搭建网站建设wordpress 插件 设计
  • 咖啡建设网站的目的河北省地图
  • 遵义网站开发的公司自媒体网站模板
  • 网站备案提交管局西安有什么旅游景点
  • 潍坊市建设监理协会网站html课程
  • 华为云网站定制设计wordpress主题下载地址
  • 购物网站建设优缺点国外服务器租用多少钱一年
  • 各种网站末班福田产品设计
  • 陕西做网站公司wordpress教程视频教程
  • 浙江网站建设设计哪个网站找住宿的便宜
  • 上海网站搜索优化想建设退伍军人网站
  • 柳州做网站哪家好企业门户网站建设报价
  • 网站怎么做导航页最好app开发公司
  • oppo官方网站软件开发需求分析模板
  • 学院网站建设报告中山市安全平台教育