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

怎么给公司做简单网站android直播app开发

怎么给公司做简单网站,android直播app开发,印度购物网站排名,七牛云wordpress加速一、什么是共享内存 共享内存区是最快的#xff08;进程间通信#xff09;IPC形式。一旦这样的内存映射到共享它的进程的地址空间#xff0c;这些进程间数据传递不再涉及到内核#xff0c;换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。注意#xff1a;…一、什么是共享内存 共享内存区是最快的进程间通信IPC形式。一旦这样的内存映射到共享它的进程的地址空间这些进程间数据传递不再涉及到内核换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。注意共享内存没有进行同步与互斥共享内存不会自动销毁要手动销毁。 二、 共享内存的原理图 三、共享内存的接口什么用 ftok 功能生成一个keykey是shmget第一个参数这个key是一个约定的数让不同的进程通过key找到同一份资源不用再进入内存查找。 头文件 #include sys/types.h #include sys/ipc.h 原型 key_t ftok(const char *pathname, int proj_id); 参数 pathname一个路径字符串可以随便给 proj_id一个int数据可以随便给 返回值返回key shmget 功能用来创建共享内存 头文件 #include sys/ipc.h #include sys/shm.h 原型 int shmget(key_t key, size_t size, int shmflg); 参数 key:这个共享内存段名字这个key是一个约定的数让不同的进程通过key找到同一份资源 size:共享内存的大小一般取 n * 1024 shmflg:由九个权限标志构成它们的用法和创建文件时使用的mode模式标志是一样的 主要用这两个 IPC_EXCL不存在共享内存就创建存在就使用现有的 IPC_EXCL不存在共享内存就创建存在就报错保证创建的共享内存是新的 返回值成功返回一个非负整数即该共享内存段的标识码失败返回-1 shmat 功能将共享内存段连接到进程地址空间 头文件  #include sys/types.h  #include sys/shm.h原型 void *shmat(int shmid, const void *shmaddr, int shmflg); 参数 shmid: 共享内存标识shmget的返回值 shmaddr:指定连接的地址 shmflg:它的两个可能取值是SHM_RND和SHM_RDONLY 返回值成功返回一个指针指向共享内存第一个节失败返回-1 说明 shmaddr为NULL核心自动选择一个地址 shmaddr不为NULL且shmflg无SHM_RND标记则以shmaddr为连接地址。 shmaddr不为NULL且shmflg设置了SHM_RND标记则连接的地址会自动向下调整为SHMLBA的整数倍。公式shmaddr - (shmaddr % SHMLBA) shmflgSHM_RDONLY表示连接操作用来只读共享内存 shmdt 功能将共享内存段与当前进程脱离 头文件  #include sys/types.h  #include sys/shm.h原型 int shmdt(const void *shmaddr); 参数 shmaddr: 由shmat所返回的指针 返回值成功返回0失败返回-1 注意将共享内存段与当前进程脱离不等于删除共享内存段删除共享内存用shmctl shmctl 功能用于控制共享内存 头文件  #include sys/ipc.h  #include sys/shm.h 原型 int shmctl(int shmid, int cmd, struct shmid_ds *buf); 参数 shmid:由shmget返回的共享内存标识码 cmd:将要采取的动作有三个可取值 PC STAT 把shmid ds结构中的数据设置为共享内存的当前关联值IPC SET 在进程有足够权限的前提下把共享内存的当前关联值设置为shmid ds数据结构中给出的值IPC RMID 删除共享内存段 buf:指向一个保存着共享内存的模式状态和访问权限的数据结构一般设为nullptr 返回值成功返回0失败返回-1 四、使用演示 使用代码创建一个共享内存 支持两个进程进行通信  进程A 向共享内存当中写 “i am process A”  进程B 从共享内存当中读出内容并且打印到标准输出 使用到的linux的一些指令 ipcs -m查看共享内存的消息 ipcrm -m shmid删除共享内存标识码为shmid的共享内存 监视脚本 while :; do ipcs -m; sleep 1; done功能每隔一秒打印一次共享内存消息 shm.hpp #include sys/types.h #include sys/ipc.h #include sys/shm.h #include string #include cstring #include iostream #include unistd.husing namespace std;const string pathname /home/lwj/code11; const int proj_id 0x112233; const int size 4096; key_t Getkey() {int key ftok(pathname.c_str(), proj_id);if(key 0){perror(ftok);exit(-1);}return key; }char* gethex(int x) {char s[1024];sprintf(s, 0x%x, x);return s;}processA.cc #include shm.hpp int main() {key_t key Getkey();cout 获取key: gethex(key) endl;sleep(10);//获取shmidint shmid shmget(key, size, IPC_CREAT | IPC_EXCL | 0644);cout 创建shm, 获取shmid: shmid endl; if(shmid 0){cerr shmget fail endl;exit(-1);};sleep(10);//连接shmcout 连接shm endl; char* s (char*)shmat(shmid, nullptr, 0);sleep(10);//通信cout 写消息 endl;string str i am process A;int i 0;for (auto e : str){s[i] e;i;}s[i] \0;//断开shmsleep(10);cout 断开shm endl; shmdt(s);sleep(10);//销毁shmcout 销毁shm endl; shmctl(shmid, IPC_RMID, nullptr);return 0; }processB.cc #include shm.hpp int main() {key_t key Getkey();cout 获取key: gethex(key) endl;sleep(5);// 获取shmidint shmid shmget(key, size, IPC_CREAT);cout 创建shm, 获取shmid: shmid endl; if(shmid 0){cerr shmget fail endl;exit(-1);}// 连接shmcout 连接shm endl;char *s (char *)shmat(shmid, nullptr, 0);sleep(5);// 通信cout 读消息: s endl;// 断开shmsleep(10);cout 断开shm endl;shmdt(s);sleep(10);// 销毁shmcout 销毁shm endl;shmctl(shmid, IPC_RMID, nullptr);return 0; }Makefile .PHNOY:all all:processA processBprocessA:progressA.ccg -o $ $^ -stdc11 processB:progressB.ccg -o $ $^ -stdc11.PHONY:clean clean:rm -f processA processB演示效果视频链接 shm演示视频-CSDN直播
http://www.hkea.cn/news/14262635/

相关文章:

  • 做网站要属于无形资产吗wordpress思维导图
  • 专门做产品定制的网站网站关键词优化费用
  • 网站icp备案 去哪做网站一班需要多少钱
  • a3网站建设重庆seo代理价格
  • 网站程序更换彩票网站开发需要多少钱
  • 手机网站怎么做单页面最方便建立网站
  • 正规代做毕业设计的网站公司做分享网站好吗
  • 石碣网站仿做上海高端网站
  • 做企业网站安装什么系统好dw如何发布网页
  • 网站代理公司论坛前端模板
  • 网站pv多少可以云南旅游网站建设公司
  • 有哪些可以做外链的网站我的企业网站怎么seo
  • 东莞大朗网站建设公司东营新闻最新消息
  • 长沙岳麓区网站网络排名优化方法
  • 扬中网站开发wordpress导入大小.h
  • 国外网站开发发展历程衡水专业制作网站
  • 新手容易上手的cms做企业网站西丽网站建设
  • html5做静态网站用wordpress开发网站模板
  • 小学学校网站设计模板网上推广找xiala5徵
  • seo快速提高网站转化率上海广告公司联系方式
  • 全国最大的网站建设公司排名甘肃省住房和城乡建设厅网站
  • asp源码网站医院网站开发违法吗
  • ASP网站开发技术期末考试大学做网站
  • 接计设做的网站iis7搭建网站织梦
  • 青岛天河小学网站建设怎么做网站优化的
  • 网站等保测评怎么做静态网页开发工具
  • 网站建设电话销售说不需要如何做黑客攻击网站
  • 网站关键词部署网站怎么做才能赚钱
  • 天津平台网站建设推荐网站平均停留时间
  • 工商局网站怎么做增项浙江省住房和城乡建设厅网站 文件