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

四川省住房和城乡建设厅网站下载网站淘宝推广怎么做

四川省住房和城乡建设厅网站下载,网站淘宝推广怎么做,天元建设集团有限公司被山东高速收购了吗,做程序网站需要什么代码1. 什么是共享内存共享内存(Shared Memory)#xff0c;指两个或多个进程共享一个给定的存储区。进程可以将同一段共享内存连接到它们自己的地址空间中#xff0c;所有进程都可以访问共享内存中的地址#xff0c;就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进…1. 什么是共享内存共享内存(Shared Memory)指两个或多个进程共享一个给定的存储区。进程可以将同一段共享内存连接到它们自己的地址空间中所有进程都可以访问共享内存中的地址就好像它们是由用C语言函数malloc分配的内存一样。而如果某个进程向共享内存写入数据所做的改动将立即影响到可以访问同一段共享内存的任何其他进程。个人理解在物理内存上有一块空间不同的进程通过页表将其映射到自己的虚拟地址空间返回一个地址通过这个地址可以访问到那一块内存空间此内存空间为共享内存2. 原理下图中红线表示不同进程将自己的地址空间映射到不同物理内存中各自进行自己的任务不同进程之间独立工作不同进程通过共享内存进行通信在物理内存上开辟一块空间称为共享内存不同进程将这块共享内存连接到自己的地址空间不同进程以各自地址空间的虚拟地址通过页表找到共享内存通过向共享内存中写数据和读数据实现进程间通信3. 共享内存的特点以传送数据为目的所有进程间通信中速度最快的一种方式(例进程一向共享内存传送数据进程二能够立马看见传送的数据少了若干次拷贝)共享内存生命周期随内核共享没有自带同步或互斥由用户来维护共享内存信号量共享内存通常结合在一起使用信号量用来同步对共享内存的访问4. 共享内存的操作共享内存的创建 #include #include //如果共享内存不存在创建共享内存如果存在就打开共享内存 int shmget(key_t key, size_t size, int shmflg); //返回值成功返回共享内存的标识符失败返回-1参数共享内存的关键字key共享内存的标识符获取方法和消息队列 key的方法一致也可认为key就是共享内存的名字参数共享内存的大小size由你自己指定一般指定为4k的倍数(内存4k为一页)参数共享内存的访问权限shmflg共享内存的权限它与文件的访问权限一样 IPC_CREAT:创建新的共享内存。 IPC_EXCL:与IPC_CREAT一同使用表示如果要创建的共享内存已经存在则返回错误。 IPC_NOWAIT:读写共享内存要求无法满足时不阻塞 0如果是打开文件即文件已存在写0共享内存的查看命令 ipcs -m 共享内存的挂载 #include #include //将共享内存链接到进程地址空间 void *shmat(int shmid, const void *shmaddr, int shmflg); //返回值失败返回NULL,成功返回一个指针为地址空间的虚拟地址并且连接数加1(nattch)参数共享内存的标识符shmidshmget的返回值参数指定连接进程地址空间的地址shmaddr共享存储段连接到调用进程的哪个地址上与addr参数以及在flag中是否指定SHM_RND位有关如果addr为0则此段连接到由内核选择的第一个可用地址上。这是推荐的使用方式。如果addr非0并且没有指定SHM_RND则此段连接到addr所指定的地址上。如果addr非0,并且指定了SHM_ RND则此段连接到(shmaddr -(shmaddr % SHMLBA))所表示的地址上。SHM_RND命令的意思是取整。SHMLBA的意思是低边界地址倍数它总是2的乘方。该算式是将地址向下取最近1个SHMLBA的倍数。注除非只计划在一种硬件上运行应用程序(这在当今是不大可能的)否则不应指定共享段所连接到的地址。所以一般应指定addr为0以便由内核选择地址参数共享内存的权限shmflgshmflg SHM_RDONLY表示连接操作作用来只读共享内存共享内存的卸载 #include #include //将共享内存与当前连接进程脱离 int shmdt(const void* shmaddr) //返回值成功返回0,失败返回-1 //参数由shmat返回的指针 //注意将共享内存与进程脱离不等于删除共享内存共享内存的控制 #include #include //shmctl系统调用对shmid标识的共享内存执行cmd操作 //返回值成功返回0失败返回-1 int shmctl(int shmid, int cmd, struct shmid_ds *buf);参数共享内存的表示符shmidshmget的返回值参数将要采取的操作cmd选项 说明IPC_STAT 把shmid_ds结构中的数据设置为共享内存的当前关联值IPC_SET 在进程有足够权限的前提下把共享内存的当前关联值设置为shmid_ds数 据结构中给出的值IPC_RMID 删除共享内存参数保存共享内存的模式状态和访问权限的数据结构buf共享内存的一些属性填NULL服务端客户端实例comm.h#ifndef __COMM_H__#define __COMM_H__#include #include #include #define PATHNAME .#define PROJ_ID 0x6666int createShm(int size);//创建共享内存int getShm(int size);//获取共享内存int destoryShm(int shmid);//销毁共享内存#endif comm.c#include comm.hstatic int commShm(int size,int flags)//创建共享内存{ key_t key ftok(PATHNAME,PROJ_ID); if(key 0){ perror(ftok); return -1; } int shmid shmget(key, size, flags); if(shmid 0){ perror(shmget); return -2; } return shmid;}int createShm(int size){ return commShm(size, IPC_CREAT | IPC_EXCL);}int getShm(int size)//获取共享内存{ return commShm(size, IPC_CREAT);}int destoryShm(int shmid)//销毁共享内存{ if(shmctl(shmid, IPC_RMID,NULL) 0){ perror(shmctl); return -3; }}server.c#include comm.hint main(){ int shmid createShm(4096);//创建共享内存 char* addr (char*)shmat(shmid,NULL,0);//将共享内存进行挂接 int i0; while(i 26){ printf(client%s
http://www.zqtcl.cn/news/877824/

相关文章:

  • 许昌网站建设科技公司公司查询网站查询系统
  • 老网站权重低的原因网站建设公司使用图片侵权使用者有无责任
  • 邹城网站建设网站建设要注意什么
  • 图片在线制作表情合肥网站推广优化
  • 哈尔滨网站建设网站分成几种类型
  • 网站怎么添加二级域名全栈网站开发
  • 网站公司建设网站收费模块专业的网站建设联系
  • 网站建设广告方案linchong.wordpress
  • 北京快速建站模板制作网页教程的软件
  • 深圳市住房建设局网站首页wordpress主页加关键词
  • 专业做网站较好的公司wordpress 大内存
  • 网站关站html5编辑器手机版下载
  • 网站域名多少钱住房和城乡建设部网站注册
  • seo整站优化 wordpress广州门户网站建设公司
  • 深圳市官网网站建设平台上海在建工程查询
  • 网页制作模板的网站免费合肥网站建设5k5
  • 公司信息化网站建设实施方案永久免费国外vps无需信用卡
  • 域名备案企业网站内容好网站建设公司开发
  • 合肥公司做网站网站代码需要注意什么
  • 梧州网站制作公司高端网站开发公司有哪些
  • seo网站设计北京做app的公司有哪些
  • 佛山淘宝设计网站设计价格软件商城免费下载 app
  • 物联网型网站开发cms系统源码
  • 淘宝价格网站建设wordpress 点餐
  • 晋中网站建设公司汉滨区城乡建设规划局 网站
  • 2018年的网站制作湖北省随州市建设厅网站
  • 做网络销售保温材料用什么网站好企业网站的建设企业
  • 2008发布asp网站海外如何 淘宝网站建设
  • 小米云网站开发食品包装
  • 销售网站怎么做的帝国cms网站搬家教程