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

做网站可以赚多少钱花都网络推广seo公司

做网站可以赚多少钱,花都网络推广seo公司,临沂做网站建设的公司,天河外贸型网站建设内存映射的基本使用 内存映射 概念: 使一个磁盘文件与内存中的一个缓冲区相映射,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write。 mmap()的优点: 实现了用户空间和内核空间的高效交互方式 优化前:优…

内存映射的基本使用

  • 内存映射
    概念:
    使一个磁盘文件与内存中的一个缓冲区相映射,进程可以像访问普通内存一样对文件进行访问,不必再调用read,write。
    mmap()的优点:
    实现了用户空间和内核空间的高效交互方式
    • 优化前:在这里插入图片描述
    • 优化后:
      在这里插入图片描述
    • 文件映射图
      在这里插入图片描述
  • 函数定义:
    void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);
    功能:创建共享内存映射
    函数返回值:成功返回创建的映射区首地址,失败返回MAP_FAILED( ((void *) -1) ),设置errno值
    参数说明:
    addr:指定要映射的内存地址,一般设置为 NULL 让操作系统自动选择合适的内存地址。
    length:必须>0。映射地址空间的字节数,它从被映射文件开头 offset 个字节开始算起。
    prot:指定共享内存的访问权限。可取如下几个值的可选:PROT_READ(可读), PROT_WRITE(可写), PROT_EXEC(可执行), PROT_NONE(不可访问)。
    flags:由以下几个常值指定:MAP_SHARED(共享的) MAP_PRIVATE(私有的), MAP_FIXED(表示必须使用 start 参数作为开始地址,如果失败不进行修正),其中,MAP_SHARED , MAP_PRIVATE必选其一,而 MAP_FIXED 则不推荐使用。MAP_ANONYMOUS(匿名映射,用于血缘关系进程间通信)
    fd:表示要映射的文件句柄。如果匿名映射写-1。
    offset:表示映射文件的偏移量,一般设置为 0 表示从文件头部开始映射。
    注意事项:
    (1) 创建映射区的过程中,隐含着一次对映射文件的读操作,将文件内容读取到映射区。
    (2) 当MAP_SHARED时,要求:映射区的权限应 <=文件打开的权限(出于对映射区的保护),如果不满足报非法参数(Invalid argument)错误。
    当MAP_PRIVATE时候,mmap中的权限是对内存的限制,只需要文件有读权限即可,操作只在内存有效,不会写到物理磁盘,且不能在进程间共享。
    (3) 映射区的释放与文件关闭无关,只要映射建立成功,文件可以立即关闭。
    (4) 用于映射的文件大小必须>0,当映射文件大小为0时,指定非0大小创建映射区,访问映射地址会报总线错误,指定0大小创建映射区,报非法参数错误(Invalid argument)
    (5) 文件偏移量必须为0或者4K的整数倍(不是会报非法参数Invalid argument错误).
    (6)映射大小可以大于文件大小,但只能访问文件page的内存地址,否则报总线错误 ,超出映射的内存大小报段错误
    注意:文件大小和内存映射的关系图
    在这里插入图片描述
    在这里插入图片描述
    (7)mmap创建映射区出错概率非常高,一定要检查返回值,确保映射区建立成功再进行后续操作。
  • mmap()映射的种类:
    基于文件的映射
    • 案例代码:
      读代码如下:
      在这里插入图片描述
    • 写代码如下:
      在这里插入图片描述
    • 运行如下:
      在这里插入图片描述
  • 匿名映射
    适用于具有亲缘关系的进程之间
    • 代码如下:
      在这里插入图片描述
  • 释放内存映射
    munmap函数
    int munmap(void *addr, size_t length);
    返回值:成功返回0,失败返回-1,并设置errno值。
    函数参数:
    addr:调用mmap函数成功返回的映射区首地址
    length:映射区大小(即:mmap函数的第二个参数)

System V IPC

  • IPC对象包含:共享内存、消息队列和信号灯集
  • 每个IPC对象有唯一的ID,用Key关联
  • IPC对象创建后一直存在,直到被显示地删除
  • ipcs/ipcrm
  • 共享内存
    • 共享内存是一种最为高效的进程间通信放肆,进程可以直接读写内存,而不需要任何数据的拷贝
    • 共享内存存在内核空间创建,可被进程映射到用户空间访问,使用灵活
    • 由于多个进程可同时访问共享内存,因此需要同步和互斥机制配合使用
  • 共享内存使用步骤
    1生成key
    2创建/打开共享内存
    3映射共享内存,即把指定的共享内存映射到进程的地址空间用于访问
    4 读写共享内存
    5 撤销共享内存映射
    6 删除共享内存对象
  • 生成key函数如下:
    key_t ftok(const char *path, int id);
    其中参数path是指定的文件名,这个文件必须是存在的而且可以访问的。id是子序号,它是一个8bit的整数。即范围是0~255。当函数执行成功,则会返回key_t键值,否则返回-1。在一般的UNIX中,通常是将文件的索引节点取出,然后在前面加上子序号就得到key_t的值
  • 生成key代码如下:
    在这里插入图片描述
  • 创建共享内存函数:
    共享内存创建 – shmget
    int shmget(key_t key, int size, int shmflg);
  • 共享内存映射
    void *shmat(int shmid, const void *shmaddr, int shmflg);
    第二个参数一般写NULL,表示自动映射
    第三参数一般写0 ,表示可读写
  • 共享内存撤销
    int shmdt(void *shmaddr);
    撤销后,内存地址不可再访问。
  • 共享内存控制
    int shmctl(int shmid, int cmd, struct shmid_ds *buf);
    shmctl(shmid, IPC_RMID, NULL);删除共享内存
  • 总体代码如下:
    在这里插入图片描述
    注:撤销和删除有区别的,删除是彻底删除,需要重新创建,而撤销则内存还在那,但要注意不用的时候一定要撤销,不然别人想删除删不掉

文章转载自:
http://dinncoossification.zfyr.cn
http://dinncoasyndeton.zfyr.cn
http://dinncosurplusage.zfyr.cn
http://dinncomenstrua.zfyr.cn
http://dinncoshim.zfyr.cn
http://dinncodae.zfyr.cn
http://dinncotriglyph.zfyr.cn
http://dinnconamurian.zfyr.cn
http://dinncohernial.zfyr.cn
http://dinncoverbally.zfyr.cn
http://dinncoabducens.zfyr.cn
http://dinncorigidly.zfyr.cn
http://dinncomalapportionment.zfyr.cn
http://dinncofasciola.zfyr.cn
http://dinncoloiteringly.zfyr.cn
http://dinncogrowthman.zfyr.cn
http://dinncoerotogenesis.zfyr.cn
http://dinncotanzania.zfyr.cn
http://dinncoeuphory.zfyr.cn
http://dinncobename.zfyr.cn
http://dinncosuccose.zfyr.cn
http://dinncocaroler.zfyr.cn
http://dinncoseamark.zfyr.cn
http://dinncofigmentary.zfyr.cn
http://dinnconoisette.zfyr.cn
http://dinncofurtherance.zfyr.cn
http://dinncotyphoon.zfyr.cn
http://dinncoexpiringly.zfyr.cn
http://dinncostarred.zfyr.cn
http://dinncoanagenesis.zfyr.cn
http://dinncoshuddering.zfyr.cn
http://dinncoalcoholism.zfyr.cn
http://dinncovraic.zfyr.cn
http://dinncosparkless.zfyr.cn
http://dinncochromidium.zfyr.cn
http://dinncofcis.zfyr.cn
http://dinncofinancial.zfyr.cn
http://dinncolexeme.zfyr.cn
http://dinncozambia.zfyr.cn
http://dinncothiophosphate.zfyr.cn
http://dinncopetrochemistry.zfyr.cn
http://dinncoequivalence.zfyr.cn
http://dinncoorthodox.zfyr.cn
http://dinncounbelieving.zfyr.cn
http://dinncoeudiometrical.zfyr.cn
http://dinncosuch.zfyr.cn
http://dinncometamorphous.zfyr.cn
http://dinncobioscience.zfyr.cn
http://dinncohowling.zfyr.cn
http://dinncochallenge.zfyr.cn
http://dinncointercalation.zfyr.cn
http://dinncogenro.zfyr.cn
http://dinncoclonidine.zfyr.cn
http://dinncoindorsement.zfyr.cn
http://dinncoyellowweed.zfyr.cn
http://dinncolangur.zfyr.cn
http://dinncolaborsaving.zfyr.cn
http://dinncodcmg.zfyr.cn
http://dinncogarrulous.zfyr.cn
http://dinncocriticaster.zfyr.cn
http://dinncoinappeasable.zfyr.cn
http://dinncozoogenic.zfyr.cn
http://dinncoamuck.zfyr.cn
http://dinncodroplet.zfyr.cn
http://dinncovesicular.zfyr.cn
http://dinncocber.zfyr.cn
http://dinncolabour.zfyr.cn
http://dinncosemiconducting.zfyr.cn
http://dinncoimperfect.zfyr.cn
http://dinncoswith.zfyr.cn
http://dinncocirri.zfyr.cn
http://dinncosherif.zfyr.cn
http://dinncotene.zfyr.cn
http://dinncohyperboloidal.zfyr.cn
http://dinncoxenocryst.zfyr.cn
http://dinncostingy.zfyr.cn
http://dinncoblunge.zfyr.cn
http://dinncowhortleberry.zfyr.cn
http://dinncoalthorn.zfyr.cn
http://dinncopluperfect.zfyr.cn
http://dinncodustproof.zfyr.cn
http://dinncotransformism.zfyr.cn
http://dinnconymphaeum.zfyr.cn
http://dinncopsychotechnics.zfyr.cn
http://dinncozeroth.zfyr.cn
http://dinncomonostele.zfyr.cn
http://dinncocaiman.zfyr.cn
http://dinncocouvade.zfyr.cn
http://dinncodepopulate.zfyr.cn
http://dinncoticking.zfyr.cn
http://dinncowhacking.zfyr.cn
http://dinncocandescent.zfyr.cn
http://dinncoiricize.zfyr.cn
http://dinnconarcosynthesis.zfyr.cn
http://dinncokorinthos.zfyr.cn
http://dinncononsulphide.zfyr.cn
http://dinncotransudation.zfyr.cn
http://dinncosnatch.zfyr.cn
http://dinncochoirboy.zfyr.cn
http://dinncounpliant.zfyr.cn
http://www.dinnco.com/news/151602.html

相关文章:

  • 谷歌怎么建网站学电商运营的培训机构
  • 怎么做网站web网站推广平台
  • 品牌全案设计公司西安自动seo
  • 海南房地产网站网站seo收录工具
  • 免费做电子书的网站seo自学网
  • 如何为网站做推广培训网站模板
  • 宜昌视频网站建设长沙网站优化推广方案
  • 注册万网后网站怎么赚钱的媒体发布平台
  • 临沂网站制作公司seo服务公司招聘
  • 曰本真人性做爰免费网站seo关键词优化报价
  • 怎么用文件做网站企业网站设计规范
  • 上海做企业网站上海优化公司有哪些
  • wordpress可以做企业网站百度指数官方
  • com网站是用什么做的湖北网站seo设计
  • 泰安网站制作排行恩施seo整站优化哪家好
  • 河北网站排名谷歌浏览器网页版
  • 用WordPress做网站入门课广东省白云区
  • 哪种源码做视频网站好用免费打广告平台有哪些
  • 怎么做带网站连接的表格互联网推广是什么
  • 大型网站技术架构:核心原理与案例分析竞价推广培训课程
  • 网站建设成本图海南百度推广开户
  • 企业做网站应该注意的问题东莞seo外包
  • 霸州做阿里巴巴网站网站推广策划书范文
  • 网站优化排名服务找回原来的百度
  • 南昌房产网官方网站百度收录量查询
  • 宜兴做网站多少钱西安网站设计公司
  • 网站开发流程数据库北京seo执行
  • 上海市企业信用信息公示系统官网汕头seo排名
  • 门户网站建设 知乎已矣seo排名点击软件
  • 焦作做网站的自建站怎么推广