当前位置: 首页 > 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://www.yayakq.cn/news/868456/

相关文章:

  • 佛山智能模板建站好看的网站首页设计
  • 贵州省建设执业资格促进会网站乐陵网站优化
  • 网站建设策划书模板下载公司网站布局
  • 地方生活门户信息网站源码wordpress中如何添加面包屑
  • 四川建设行政主管部门官方网站企业网站建设图
  • 常见的网络营销有哪些seo平台怎么样
  • 网站英文怎么写小米新品发布会流程
  • 毕业设计做视频网站好做么莱芜雪野湖图片
  • 网站右下角视频代码seo网站推广的主要目的是什么
  • 如何提升网站打开速度html个人网页制作教程
  • html5 jq做电脑网站外网门户网站建设方案
  • 怎么用自己电脑做网站服务器吗wordpress require
  • 写一篇软文1000字2017 如何做网站优化
  • 网站备案名称更改制作需要多少钱
  • 网站开发有哪些常用工具wordpress 又拍云插件
  • 昆山做网站的那家好企业网站建设主要考虑哪些
  • 全国较好的网站建设公司公司网站设计的费用
  • 爱名网22自助网站建设南昌做网站和微信小程序的公司
  • 网站开发网wordpress搜索引擎显示
  • 网络营销软件网站汕头自助建站系统
  • 无锡新区建设局网站wordpress如何设置标题字的大小
  • 优质网站建设制作成都网站建设公司是什么
  • 免费网站在线观看人数在哪郑州短视频运营公司
  • 做招标应该关注什么网站重庆竣工验收备案网上查询
  • 做个网站酷站 网站模板
  • 绵阳市做公司网站网站建设都包括什么科目
  • 有什么网站开发软件中化建工北京建设投资有限公司网站
  • 长沙多迪php网站开发培训学校阿里建站服务
  • 可以做外贸私单的网站娄底网站建设优化企业
  • 个人怎么见个网站找工作的网站平台