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

被老板抓到用公司产品做自己的网站开店加盟

被老板抓到用公司产品做自己的网站,开店加盟,长沙高新区建设局网站,带你做网站毕设C语言文件操作 fopenfseekfreadfwritefclose 可执行文件 可执行文件的格式   在裸机环境下,得到的是HEX/BIN格式的文件,而使用操作系统时,操作的往往是ELF格式的文件   BIN/HEX文件是纯指令文件,没有其他杂七杂八的辅助信息,BIN文件最纯…

C语言文件操作

  • fopen
  • fseek
  • fread
  • fwrite
  • fclose

可执行文件

  • 可执行文件的格式
      在裸机环境下,得到的是HEX/BIN格式的文件,而使用操作系统时,操作的往往是ELF格式的文件
      BIN/HEX文件是纯指令文件,没有其他杂七杂八的辅助信息,BIN文件最纯粹,而HEX文件会有一些附加的信息比如校验什么的;而ELF文件除了基本的代码段、数据段,还有文件头、符号表、program header table等用来辅助程序运行的信息

  • 裸机环境下程序的运行
      在ARM架构下 bin文件的头部的第一个存放的是SP指针的值 第二个存放的是RestHandler的地址 这样的话一上电SP指针和PC指针得到了相关的值就知道怎么运行了,同时在进入main函数之前会有一个__main函数,__main函数解析了bin文件中关于ZI段,数据段等信息,并对相应的SRAM内存做了操作,比如分配堆/栈,清空ZI段,加载数据段等等

  • ELF的加载与运行
       ELF通过加载器加载到内存当中
    在这里插入图片描述

    .text段:代码段
    .bss段: 未初始化的全局变量(实际上此时只记录了符号 并没有分配内存,只有使用的时候才会加载)
    .data段: 初始化的全局变量
    .rodata段: 字符串/const修饰的常量
    .elf headler:记录了一些关键信息不可缺少

  • 可执行文件加载的过程
    如何把一个可执行文件转换为进程呢
    在这里插入图片描述

  • 静态链接
      静态链接就是在程序链接的过程中 就把引用的函数和变量编入可执行文件里面了 这样做的话会大大增加可执行文件的体积,并且假设多个文件都使用了printf 每个人一个副本的话也浪费内存,关键是C语言是以文件为基本单位的,所以实际上多的不止printf而是整个的xx.c文件

    • ar命令可以用来生成静态库
    • gcc -L -l用来指定链接的库
  • 动态链接
      动态链接就是为了解决静态链接的缺点而存在的 同样的动态链接有一个动态链接器。
      动态链接器通过解析ELF,做这样几件事

    1. 对动态链接库进行重定位:调整库内代码和数据的地址以适应实际加载地址的过程
    2. 对用到动态库的符号重定位(更新GOT表):(也不知道动态库被加载到哪里了 所以动态库加载完毕后,需要重新找然后告诉程序更新了)
    3. 然后再把控制权交给程序本身
      在这里插入图片描述
    • 与地址无关的代码与GOT表
        你不能每个进程都用printf就重新加载一遍动态链接库到对应进程,这不白操作了吗 我们希望的是虽然多个进程都是用了printf 但实际上printf的代码执被加载了一次,这个事情需要动态链接库和应用程序双方的努力。

      • 动态链接库:生成与地址无关的代码(比如偏移量靠绝对的)
      • 应用程序: GOT表 把使用动态链接库的符号都取出来,到时候动态库加载了就实时更新这个表
        在这里插入图片描述
    • 延迟绑定
      没有必要一次性把所有动态库都加载到内存,用到谁就加载谁

    • 模块的加载流程

      1. 初始化 init_module–放在特殊的section段
      2. 拷贝到内核 copy_from_user
      3. 地址空间分配
      4. 符号解析
      5. 重定位
      6. 执行

文章转载自:

http://2D5ZSXFF.rwzkp.cn
http://Ri8rE5fR.rwzkp.cn
http://yX58ZSkJ.rwzkp.cn
http://Zlf0kh46.rwzkp.cn
http://3Fe2oym9.rwzkp.cn
http://C5xCOKXQ.rwzkp.cn
http://Pzs5o9rk.rwzkp.cn
http://XGWKFYJt.rwzkp.cn
http://v9H3LVaC.rwzkp.cn
http://tvYA03T0.rwzkp.cn
http://nH9IaVdC.rwzkp.cn
http://Ff6mc152.rwzkp.cn
http://94EJn9eY.rwzkp.cn
http://fGVDDjqw.rwzkp.cn
http://zs3bVTdG.rwzkp.cn
http://v7rBnZJa.rwzkp.cn
http://bnrPgD3M.rwzkp.cn
http://LLYKj2Da.rwzkp.cn
http://RTo3rpus.rwzkp.cn
http://CIVV5Gci.rwzkp.cn
http://pVN56VHf.rwzkp.cn
http://SkANkNvL.rwzkp.cn
http://oqtBaPqq.rwzkp.cn
http://NwuOznGc.rwzkp.cn
http://w1az5BeC.rwzkp.cn
http://BXMM6oYA.rwzkp.cn
http://TLeJ7OAL.rwzkp.cn
http://2lyodTwH.rwzkp.cn
http://p0bHABgx.rwzkp.cn
http://GVejB91A.rwzkp.cn
http://www.dtcms.com/wzjs/637263.html

相关文章:

  • 人社局网站建设管理工作总结红河网页设计
  • 网站建设定制公司互联网广告销售好做吗
  • 游戏网站开发计划书软文广告发布平台
  • 网站建设 制作教程帮忙做任务网站
  • 岚县网站建设西安网站建设ruiqinet
  • 网站开发开票交税网站建设相关行业有哪些
  • 管理公司网站建设宝安专业网站建设
  • 门户网站的细分模式有站长号
  • 多语言网站开发设计制作公司网站的作用
  • 西安网站建设那家强设计店面装修
  • 推广普通话活动总结优化推广seo
  • 网站建设公司哪家好该如何选择网页设计成品网站
  • html 网站建设中模板有错误的wordpress
  • 网站架构图图wordpress 分类目录 404
  • 网站备案密码忘wordpress默认密码恢复
  • 旅游公司网站设计自己电脑做网站
  • 合肥做网站的的公司1g内存vps 开电影网站
  • 内江规划建设教育网站wordpress做超链接
  • 中国城投建设集团有限公司网站贵州建设厅网站建筑企业公示栏
  • 网站建设哪家好推荐万维科技什么网站程序适合做seo
  • 安徽网站建设服务本地wordpress 手机浏览器
  • 海南省建设网站首页网站维护北京
  • 怎样才能建网站c# 手机版网站开发
  • 做推广网站的文章术语电信网站备案查询系统
  • 制学网网站开发一个小程序的流程
  • 广州市建设工程交易服务中心网站中国加盟网
  • 做二手的网站有哪些盐城网站建设优化建站
  • s网站优化建设网站的实验目的
  • 钓鱼网站教程网站开发团队排行榜
  • 网站设计与建设课程网站流量与带宽