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

做网站买一个域名就够了吗cn域名知名网站

做网站买一个域名就够了吗,cn域名知名网站,网站开发界面设计工具,东莞诚信通代运营共享内存 一.原理二.创建共享内存1.shmget2.写一个共享内存代码 三.进行通信1.各种接口2.各接口使用代码3.一次简单的通信四.共享内存的特点 一.原理 直接原理 共享内存顾名思义就是共同使用的一块空间。 很明显操作系统需要对这块内存进行管理#xff0c;那么就避免不了先描… 共享内存 一.原理二.创建共享内存1.shmget2.写一个共享内存代码 三.进行通信1.各种接口2.各接口使用代码3.一次简单的通信四.共享内存的特点 一.原理 直接原理 共享内存顾名思义就是共同使用的一块空间。 很明显操作系统需要对这块内存进行管理那么就避免不了先描述后组织的策略。 二.创建共享内存 1.shmget 申请一块共享内存-shmget 第二个参数创建共享内存的大小单位字节。 第三个参数多个选项 返回值如果成功返回共享内存标识符如果失败返回-1。 操作系统怎么保证不同进程看到同一个共享内存呢怎么知道这块内存是否存在呢 这就需要对第一个参数进行讨论了。 2.写一个共享内存代码 comm.hpp #ifndef __COMM_HPP__ #define __COMM_HPP__ #include iostream #include sys/types.h #include sys/ipc.h #include sys/shm.husing namespace std;const int size4096; const string path/home/chz;//任意写 const int proj_id0x6666;//任意写key_t Getkey()//获取一个key {key_t kftok(path.c_str(),proj_id);if(k0){perror(Create key wrong\n);exit(1);}coutCreate key sucess,key:kendl;return k; }int GetshareMem()//获取一个chmid {key_t kGetkey();int shmidshmget(k,size,IPC_CREAT|IPC_EXCL|0666);//创建方式和权限if(shmid0){perror(Create shmget wrong\n);exit(2);}coutCreate shmget sucess,shmid;shmidendl;return shmid; }#endif前面说过共享内存如果不主动释放会一直存在所以在调用该函数后我们可以使用ipcs -m查看内核的进程资源。 perms是权限nattch是与之相连的文件byte是共享内存大小建议一般按4096的整数倍创建因为系统一次分配的最小内存是4KB。 使用ipcrm -mshmid可以手动删除。 三.进行通信 1.各种接口 将共享内存挂入 第一个参数毫无疑问是共享内存标识符。 第二个参数一般设置为NULL。因为共享内存是在物理内存上要将其挂到虚拟内存的共享区但具体挂到共享区哪个位置一般由操作系统决定。该函数的返回值就是具体的起始地址。 第三个参数一般设为0。它是改变挂接时的权限虽然我们设置的共享内存权限是666但可以通过这个参数让它只读。 取消挂入 控制共享内存 第二个参数要进行什么操作。有许多参数可以自行查看这里使用 IPC_RMID删除该共享内存 第三个参数共享内存的属性。 2.各接口使用代码 processa.cc #includecomm.hpp #include unistd.hint main() {int shmidGetshareMem();sleep(3);char*shmaddr(char*)shmat(shmid,NULL,0);//将共享内存挂入cout挂入内存endl;sleep(3);shdit(shmaddr);//取消挂入cout取消挂入endl;sleep(3);shmctl(shmid,IPC_RMID,nullptr);//销毁共享内存cout销毁共享内存endl;return 0; }3.一次简单的通信 稍微修改一下comm.hpp,主要在shmget当一个进程创建时让另一个进程能获取 #ifndef __COMM_HPP__ #define __COMM_HPP__ #include iostream #include sys/types.h #include sys/ipc.h #include sys/shm.husing namespace std;const int size4096; const string path/home/chz;//任意写 const int proj_id0x6666;//任意写key_t Getkey()//获取一个key {key_t kftok(path.c_str(),proj_id);if(k0){perror(Create key wrong\n);exit(1);}coutCreate key sucess,key:kendl;return k; }int GetShareMemHelper(int flag)//获取一个chmid {key_t kGetkey();int shmidshmget(k,size,flag);//创建方式和权限if(shmid0){perror(Create shmget wrong\n);exit(2);}coutCreate shmget sucess,shmid;shmidendl;return shmid; }int CreateShm() {return GetShareMemHelper(IPC_CREAT|IPC_EXCL|0666); }int GetShm() {return GetShareMemHelper(IPC_CREAT); }#endifprocessa.cc #includecomm.hpp #include unistd.hint main() {int shmidCreateShm();//创建共享内存//挂入内存//获取起始地址并把它当作字符串使用char*shmaddr(char*)shmat(shmid,nullptr,0);while(true){//直接读取coutI am read:;coutshmaddrendl;sleep(1);}shmdt(shmaddr);//取消挂起shmctl(shmid,IPC_RMID,nullptr);return 0; }processb.cc #includecomm.hppint main() {int shmidGetShm();//获取共享内存//挂入内存//获取起始地址并把它当作字符串使用char*shmaddr(char*)shmat(shmid,nullptr,0);while(true){coutplease Enter:;fgets(shmaddr,4096,stdin);//直接从键盘读入}return 0; }makefile .PHONY:all all:processa processbprocessa:processa.ccg -o $ $^ -stdc11 processb:processb.ccg -o $ $^ -stdc11.PHONY:clean clean:rm -f processa processb四.共享内存的特点 1.共享内存没有同步互斥之类的保护机制。即使没有写入也依然会读 2.共享内存是所有的进程通信中最快的。拷贝少 3.共享内存里的所有数据由用户自己维护。操作系统不会自动将数据清零
http://www.pierceye.com/news/192678/

相关文章:

  • 社科联网站建设个人网页英文
  • 做房产推广那个网站好网站改版建设原则
  • 网站建设 语言成都app
  • 免费建站的手机app专业做网站设计公司价格
  • 江苏宜兴做网站的电话seo基础培训
  • 企业手机端网站模板下载济南公司建站模板
  • 一般公司做网站多少钱南昌市房产网
  • 惠州网站小程序建设做公司永久免费网站什么好
  • 湖南涟钢建设有限公司网站局网站建设工作总结
  • 家乡ppt模板免费下载网站合肥百姓网网站建设
  • 免费整套ppt模板下载网站东莞建设教育网站
  • 漯河网站建设漯河ps制作个人网站首页
  • 电商网站公司软件开发和软件研发
  • 网站建设浙江公司网站开发运营新人要注意什么
  • 外贸网站模板哪里下载家里电脑可以做网站服务器吗
  • 长沙门户网站北京设计网站的公司
  • 站长统计平面设计找工作难吗
  • seo建站公司推荐电商平台活动策划方案
  • 建设淘宝客网站.lc和ev手机对比平台
  • vue 做企业网站特产网站开发背景
  • 奉新网站制作dede视频网站源码
  • 做动画网站去哪采集建设网站需要的资金清单
  • 网站后台发邮件注册公司需要什么证件和手续
  • 炫酷特效网站万网虚拟主机免费空间
  • 公司网站模板最新怀远网站建设哪家好
  • 交互式网站定义如何网上找加工订单
  • 一个域名可以做几个网站吗南城网站建设公司
  • 宝安商城网站建设flash新手入门简单动画制作
  • 设置网站建设WordPress adsen
  • 网站与微信内容建设与运维总结建筑网络图