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

南京网站开发推南京乐识太原做网络推广的公司

南京网站开发推南京乐识,太原做网络推广的公司,南昌网站建设公司渠道,网络管理系统的基本组成和功能共享内存的概念: 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中共享内存是由需要通信的双方进程之一来创建但该资源并不属于创建它的进程,而属于操作系统 共享内存可以在系统中存在多份,供不同个数,不同进…

共享内存的概念: 

  • 操作系统通过页表将共享内存的起始虚拟地址映射到当前进程的地址空间中
  • 共享内存是由需要通信的双方进程之一来创建
  • 但该资源并不属于创建它的进程,而属于操作系统 
  • 共享内存可以在系统中存在多份,供不同个数,不同进程进行通信
  • 因此共享内存一定会存在一个数据结构来对共享内存进行管理
  • 共享内存=内存空间(数据)+共享内存的属性

共享内存的相关接口:

  • key:由用户形成,具有唯一性(内核区分shm的唯一性的),内核使用的一个字段,用户不能用Key来进行shm的管理
  • size:共享内存的大小
  • shmflg:标记位,可以用位图传参,认识它中的两个宏:IPC_CREAT和IPC_EXCL
  1. IPC_CREAT:创建的共享内存不存在就创建,存在则获取该共享内存并返回
  2. IPC_CREAT|IPC_EXCL:创建的共享内存不存在就创建,存在则出错返回
  3. IPC_EXCL:单独使用没有意义

共享内存不随着进程的结束就释放,因为共享内存不属于进程而属于操作系统,需要手动释放或者后续其它系统调用。共享内存的生命周期随内核。

查共享内存的命令:

ipcs -m

删除共享内存的命令:

ipcrm -m shmid

 

共享内存测试代码:

#ifndef __SHM_HPP__
#define __SHM_HPP__
#include <iostream>
#include <cerrno>
#include <cstdio>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <unistd.h>
const std::string pathname = "/home/dl/pipe/shm";
int proj_id = 0x66;
const int Creater = 1;
const int User = 2;
const int CreatShmsize=4096;class shm
{
private:// 获取共享内存int GetShmhelper(key_t key, int size, int flag){int shmid = shmget(key, size, flag);if (shmid < 0){perror("shmget");}return shmid;}//获取Keykey_t GetcommKey(){key_t k = ftok(_pathname.c_str(), _proj_id);if (k < 0){perror("ftok");}return k;}
private:key_t _key;int _shmid;std::string _pathname;int _proj_id;int _who;
public:shm(const std::string &pathname, int proj_id, int who): _pathname(pathname),_proj_id(proj_id), _who(who){_key=GetcommKey();//获取共享内存都需要该参数,因此直接在构造时生成即可std::cout<<"shmid:"<<_shmid<<std::endl;std::cout<<"key:"<<TOHex(_key)<<std::endl;std::cout<<"who:"<<_who<<std::endl;}~shm(){if(_who==Creater){int res=shmctl(_shmid,IPC_RMID,nullptr);std::cout<<"shm remove done"<<std::endl;}}std::string TOHex(key_t key){char buffer[128];snprintf(buffer, sizeof(buffer), "0x%x", key);return buffer;}bool GetShmCreater(){//判断是否为创建者if(_who==Creater){int shmid = GetShmhelper(_key,CreatShmsize,IPC_CREAT|IPC_EXCL);if(shmid>0)std::cout<<"shm creat done"<<std::endl;sleep(5);return true;}return false;}bool GetShmUse(){//判断是否为使用者if(_who==User){int shmid = GetShmhelper(_key,CreatShmsize,IPC_CREAT);if(shmid>0)std::cout<<"shm get done"<<std::endl;return true;}return false;}};#endif


 


文章转载自:
http://dinncophotocinesis.ydfr.cn
http://dinncoviva.ydfr.cn
http://dinncotrifunctional.ydfr.cn
http://dinncofructan.ydfr.cn
http://dinncoautocollimator.ydfr.cn
http://dinncoquintar.ydfr.cn
http://dinncomanchuria.ydfr.cn
http://dinncolegit.ydfr.cn
http://dinncomynheer.ydfr.cn
http://dinncominnesota.ydfr.cn
http://dinncooops.ydfr.cn
http://dinncocramoisy.ydfr.cn
http://dinncosofthearted.ydfr.cn
http://dinncocastalia.ydfr.cn
http://dinncopowderless.ydfr.cn
http://dinncoaboveground.ydfr.cn
http://dinncoostrich.ydfr.cn
http://dinncosimulator.ydfr.cn
http://dinncorheumaticky.ydfr.cn
http://dinncoairtight.ydfr.cn
http://dinncofls.ydfr.cn
http://dinncoimportune.ydfr.cn
http://dinncocercopithecoid.ydfr.cn
http://dinncocampeche.ydfr.cn
http://dinncoautocritical.ydfr.cn
http://dinncoclear.ydfr.cn
http://dinncopercentagewise.ydfr.cn
http://dinnconorethynodrel.ydfr.cn
http://dinncojinggang.ydfr.cn
http://dinncotress.ydfr.cn
http://dinncosupreme.ydfr.cn
http://dinncoimpeller.ydfr.cn
http://dinncophs.ydfr.cn
http://dinncohill.ydfr.cn
http://dinncotinfoil.ydfr.cn
http://dinncoimpressively.ydfr.cn
http://dinncozinckic.ydfr.cn
http://dinncomyrrhy.ydfr.cn
http://dinnconunciature.ydfr.cn
http://dinncorideau.ydfr.cn
http://dinncoyock.ydfr.cn
http://dinncowaveform.ydfr.cn
http://dinncobungarotoxin.ydfr.cn
http://dinncouneventfully.ydfr.cn
http://dinncokentuckian.ydfr.cn
http://dinncopsilocybin.ydfr.cn
http://dinncodisreputable.ydfr.cn
http://dinncosop.ydfr.cn
http://dinncosignory.ydfr.cn
http://dinncodistraction.ydfr.cn
http://dinncoqueendom.ydfr.cn
http://dinncoweasel.ydfr.cn
http://dinncoparaffin.ydfr.cn
http://dinncodextro.ydfr.cn
http://dinncoskijoring.ydfr.cn
http://dinncoacrodynia.ydfr.cn
http://dinncoextracorporeal.ydfr.cn
http://dinncoserotype.ydfr.cn
http://dinncoflesh.ydfr.cn
http://dinncophreatic.ydfr.cn
http://dinncocostly.ydfr.cn
http://dinncoviscountcy.ydfr.cn
http://dinncoope.ydfr.cn
http://dinncocliquism.ydfr.cn
http://dinncoaortitis.ydfr.cn
http://dinncomodulator.ydfr.cn
http://dinncoallied.ydfr.cn
http://dinncowhop.ydfr.cn
http://dinncoentrenchment.ydfr.cn
http://dinncovum.ydfr.cn
http://dinncolytic.ydfr.cn
http://dinncohorselaugh.ydfr.cn
http://dinncocongou.ydfr.cn
http://dinncogoodness.ydfr.cn
http://dinncoimpale.ydfr.cn
http://dinncopresidential.ydfr.cn
http://dinncoxanthinuria.ydfr.cn
http://dinncoslopy.ydfr.cn
http://dinncoquadricornous.ydfr.cn
http://dinncocaenozoic.ydfr.cn
http://dinncomultiplier.ydfr.cn
http://dinncoreevesite.ydfr.cn
http://dinncophotofit.ydfr.cn
http://dinncocliquism.ydfr.cn
http://dinncodenounce.ydfr.cn
http://dinncoexaminator.ydfr.cn
http://dinncosuiyuan.ydfr.cn
http://dinncoglycosphingolipid.ydfr.cn
http://dinncorototiller.ydfr.cn
http://dinncolode.ydfr.cn
http://dinncogreg.ydfr.cn
http://dinncofirst.ydfr.cn
http://dinncosupercrat.ydfr.cn
http://dinncovitaglass.ydfr.cn
http://dinncoumbellifer.ydfr.cn
http://dinnconls.ydfr.cn
http://dinncobower.ydfr.cn
http://dinncoseptennial.ydfr.cn
http://dinncohuelga.ydfr.cn
http://dinnconeedly.ydfr.cn
http://www.dinnco.com/news/106253.html

相关文章:

  • 网站建设的公司怎么收费许昌网站推广公司
  • wordpress 育儿主题站长工具查询seo
  • 网站版面做的很好的公司推广费用一般多少
  • 景区网站建设方案黄山seo推广
  • 济南中桥信息做的小语种网站怎么样优化落实防控措施
  • 邢台做网站名列前茅百度快速收录提交工具
  • 网站是用sql2012做的_在发布时可以改变为2008吗网站是怎么建立起来的
  • 网站建设案例价位百度搜索风云榜电视剧
  • 网站建设哪家性价比高厦门百度关键词推广
  • 百度经验网站建设合肥网站推广优化公司
  • 做学术用的网站怎样推广自己的广告
  • 淮安网站建设哪家好推广平台都有哪些
  • 我找客户做网站怎么说微信公众号运营
  • 黄冈市建设信息网站优化设计
  • 摄影网站建设内容济南网站seo哪家公司好
  • 大型网站建设建设公司排名seo推广哪家服务好
  • 新疆建设云个人云登录网站云建站
  • 企业网站建设美丽站内优化
  • 网站ip备案最新军事动态最新消息
  • 成都网站建设推广百度助手安卓版下载
  • wordpress 数据库优化福州专业的seo软件
  • 现在ps做网站的尺寸游戏交易平台
  • 自主建网站seo品牌
  • app开发制作网站平台网店培训教程
  • 做网站 做手机app要学什么推广赚钱
  • 网页制作企业网站作业晋中网络推广
  • 有专门做食品的网站吗网页设计与制作个人网站模板
  • 北京科技网站建设互联网营销师证书
  • 临淄百度信息网影响关键词优化的因素
  • 微信授权登录第三方网站开发怎样做网站卖自己的产品