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

网站建设要学哪些软件网站服务器建设的三种方法

网站建设要学哪些软件,网站服务器建设的三种方法,cnzz站长统计怎么添加到博客网站,小游戏网站怎么做建站一、 消息队列,是消息的链接表,存放在内核中。一个消息队列有一个人标识符(及队列ID)来标识。 1、特点: ①、消息队列是面向记录的,其中的消息具有特定的格式以及待定的优先级。 ②、消息队列独立与发送与…

一、

消息队列,是消息的链接表存放在内核中。一个消息队列有一个人标识符(及队列ID)来标识。

1、特点:
①、消息队列是面向记录的,其中的消息具有特定的格式以及待定的优先级
②、消息队列独立与发送与接收进程。进程终止时,消息队列及其内容并不会被删除。
③、消息队列可以实现消息的随机查询,消息不一定要以先进先出的次序读取,也可以按消息的类型读取。
2、原型:

#include <sys/msg.h>
//创建或打开消息队列:成功返回队列ID,失败返回-1
int msgget(key_t key,int flag);
//key索引值,flag打开队列的方式
//添加消息:成功返回0,失败返回-1
int msgsnd(int msqid,const void *ptr,size_t size,int flag);
//队列ID,消息,消息大小,标志位。
//读取消息:成功返回消息数据的长度,失败返回-1
int msgrcv(int msqid, void *ptr,size_t size,long type,int flag);
//队列ID,消息,消息大小,类型,标志位。
//控制消息队列:成功返回0,失败返回-1
int msgctl(int msqid,int cmd,struct msqid_ds *buf);
//队列ID,
//消息队列的移除

以下两种情况下:msgget将创建一个新的消息队列:
①、如果没有与键值key相对应的消息队列,并且flag中包含了IPC_CREAT标志位
②、key参数为IPC_PRIVATE。

函数msgrcv在读取消息队列时,type参数有以下几种情况:
①、type == 0,返回队列中的第一个消息
②、type > 0,返回队列中消息类型为type的第一个消息。
③、type < 0,返回队列中消息类型值小于或等于type绝对值的消息,如果有多个则取类型的最小值。

例:
获取,读

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>struct msgbuf{long mtype;char mtext[128];
};int main()
{struct msgbuf readBuf;int msgID = msgget(0x1234,IPC_CREAT|0777);//有队列就获取,没有就创建,| 权限可读可写可执行if(msgID == -1){printf("get que failure\n");}msgrcv(msgID,&readBuf,sizeof(readBuf.mtext),888,0);//接收printf("read from que :%s\n",readBuf.mtext);return 0;
}

发送

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <string.h>struct msgbuf{long mtype;char mtext[128];
};int main()
{struct msgbuf sendBuf = {888,"this is message from quen"};int msgID = msgget(0x1234,IPC_CREAT|0777);//有队列就获取,没有就创建,| 权限可读可写可执行if(msgID == -1){printf("get que failure\n");}msgsnd(msgID,&sendBuf,strlen(sendBuf.mtext),0);//发送数据return 0;
}

单运行获取get时会发生阻塞,需要运行发送send才可以继续运行

两个互相通信:

#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <string.h>struct msgbuf{long mtype;char mtext[128];
};int main()
{struct msgbuf sendBuf = {888,"this is message from quen"};struct msgbuf readBuf;int msgID = msgget(0x1234,IPC_CREAT|0777);//有队列就获取,没有就创建,| 权限可读可写可执行if(msgID == -1){printf("get que failure\n");}msgsnd(msgID,&sendBuf,strlen(sendBuf.mtext),0);//发送数据msgrcv(msgID,&readBuf,sizeof(readBuf.mtext),988,0);//接收printf("reaturn from get :%s\n",readBuf.mtext);return 0;
}
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <string.h>struct msgbuf{long mtype;char mtext[128];
};int main()
{struct msgbuf readBuf;int msgID = msgget(0x1234,IPC_CREAT|0777);//有队列就获取,没有就创建,| 权限可读可写可执行if(msgID == -1){printf("get que failure\n");}msgrcv(msgID,&readBuf,sizeof(readBuf.mtext),888,0);//接收printf("read from que :%s\n",readBuf.mtext);struct msgbuf sendBuf = {988,"thank you for reach !"};msgsnd(msgID,&sendBuf,strlen(sendBuf.mtext),0);return 0;
}
http://www.yayakq.cn/news/959664/

相关文章:

  • 苏州网站建设软件收费哪里有免费的seo视频
  • 孵化基地网站怎么建设什么是工业互联网
  • 综合性门户网站列举wordpress是什么开发的
  • 网站开发设计制作推广网站可做2个首页吗
  • 不锈钢餐具做外贸哪个网站好wordpress单页增加分页
  • 网站设计师培训图片厦门seo网络推广
  • ai logo设计网站wordpress it模板
  • 专门做酒的网站有哪些南安seo教程
  • 那些网站主做玄幻小说线下推广有哪些渠道
  • 网站的描述网页设计开发培训
  • 网站导航二级菜单怎么做出来的甘肃庆阳网
  • 湖南网站建设seo做网站需要哪些人
  • 淘宝网站的建设内容天津网站建设方案
  • 如何建设营销型网站专业做苗木的网站
  • 贵阳能做网站的公司网页升级访问紧急通通知
  • 常州专业网站建设漯河网站关键词优化
  • 做网站后台用什么写扫码点餐微信小程序怎么样开通
  • 山东一建建设有限公司官方网站品牌推广的方式
  • 合作市建设局网站什么软件可以制作图片
  • 公司门户网站建设策划书wordpress 广告 插件下载
  • 云南科技公司网站昆明 网站推广
  • 找做网站的wordpress无法发送邮件
  • dw如何做商业网站wordpress可以做网站吗
  • 学网站开发需要多久做网站的素材图片
  • jsp网站如何做seo培训美工设计师
  • 企业网站管理系统怎么用网站与规划设计思路
  • 龙岗网站建设网站排名优化为什么wordpress主题访问很慢
  • 网站建设规划文档莞城微信网站建设
  • 全市网站建设情况摸底调查河南建筑信息公共
  • 常德网站建设套餐报价智慧团建pc端注册入口