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

淄博公司网站建设效果汉川做网站

淄博公司网站建设效果,汉川做网站,网站备案信息代码,sem和seo是什么职业岗位最近还遇到一个例子是关于:从C转C开发需要注意的一个意识问题。本人遇到的这个问题是,带着C的意识来看C的代码,然后根据代码看,有一个全局变量的值在main函数进入之后才会更改,所以百思不得其解,这个变量怎…

最近还遇到一个例子是关于:从C转C++开发需要注意的一个意识问题。本人遇到的这个问题是,带着C的意识来看C++的代码,然后根据代码看,有一个全局变量的值在main函数进入之后才会更改,所以百思不得其解,这个变量怎么在main函数之前发生了改变?

这里的一个区别是,C++里全局变量的构造函数是先于main函数执行。当然在C的环境下也可以注册先于main函数执行的代码,这个有名的例子就是qemu/vpp的实现,里面有很多全局对象,最终会标记一个编译属性:
attribute((constructor));根据gcc文档里这个属性的作用:
The constructor attribute causes the function to be called automatically before execution enters main (). Similarly, the destructor attribute causes the function to be called automatically after main () completes or exit () is called. Functions with these attributes are useful for initializing data that is used implicitly
during the execution of the program.
那究竟是怎么实现的呢?这个可用通过查看一个qemu的调用栈,来看其中的流程:

(gdb) bt
#0 0x0000555555c5f6b0 in qemu_thread_create ()
#1 0x0000555555c67f69 in ?? ()
#2 0x0000555555c9a88d in __libc_csu_init ()
#3 0x00007ffff4874d18 in __libc_start_main () from /lib64/libc.so.6
#4 0x00005555558a859e in _start ()

binfmt_elf.c
/* Get the exec-header */
loc->elf_ex = *((struct elfhdr *)bprm->buf);

[root@vmtca-2003 ~]# readelf -e abc.elf
ELF Header:
Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2’s complement, little endian
Version: 1 (current)
OS/ABI: UNIX - System V
ABI Version: 0
Version: 0x1
Entry point address: 0x3afe0

nm abc.elf | grep 3afe0

000000003afe0 T _start

这样就能捋顺了,是Linux内核的系统调用execve系列在加载二进制文件的时候,根据二进制接口读取了文件的exe头部,这个头部里含有程序入口点。这个入口点是_start函数。接下来_start会做main函数之前的一些初始化的工作,包含全局变量的构造函数的调用。
这就可以根据glibc里的代码查看具体是怎么实现的这个方式。
在这里插入图片描述

http://www.yayakq.cn/news/824523/

相关文章:

  • 孝义做网站的公司郑州网站建设饣汉狮网络
  • 做网站傻瓜软件纯色涂料网站建设
  • 温州建设局网站做自己移动端网站
  • 中信云做网站wordpress设置文章图片
  • 网站的要素是什么做化妆招生宣传在那些网站可以做
  • 简单做网站需要学什么电子商务有什么职业
  • 做一个网站APP价格阿里云ace wordpress
  • wordpress电子商务站wordpress 相册浏览
  • 农业门户网站开发wordpress企业官网
  • 开源免费企业网站系统泰安做百度推广的公司
  • 阳泉网站建设哪家便宜佛山定制网站建设
  • 网站建设网站模板个人两字印章在线制作网站
  • 简述企业网站推广的一般策略艺商网站
  • p2p网站开发的流程图域名搜索引擎
  • 广州网站优化网站企业宣传网站在哪里做
  • 域名查询app厦门企业网站排名优化
  • 网站开发的毕设开题报告重庆工程交易信息网
  • 做英文小工具网站赚钱怎么做付费的小说网站
  • 哪里有免费的网站推广软件企业推广网站
  • 网站怎么做vga头2 网站内部链接优化
  • 网站栅格化怎么做wordpress怎样修改主题模版
  • 北京网站开发飞沐软件开发技术培训中心
  • 东阿县建设招标网站分享网站对联广告
  • html设计素材网站程序源代码下载网站
  • 关于网站制作的指标钻磊二级域名分发
  • .net网站开发简介emlog to wordpress
  • wordpress 翻译语言包济南网站优化推广公司电话
  • 怎样建个小公司的网站app网站的电话是什么
  • 深圳网站建设号黄石网络推广
  • 手表电商网站php网站开发 教案