覆盖主程序入口点的可能缺点

时间:2017-02-21 16:45:17

标签: c startup crt

所以我试图在我的C程序中为main设置我自己的自定义名称,然后我找到UpdateAttribute回答。

  

您可以使用-e标记ld指定程序的入口点。   这意味着你可以根据需要覆盖入口点,但是你可能不想为你打算在你的机器上正常运行的C程序那样做,因为start可能会执行各种特定于操作系统的东西。 ;在程序运行之前需要;

不从_start调用crt0.o并编写我自己的那些只是做我想做的事情会有什么(可能)的缺点?

1 个答案:

答案 0 :(得分:1)

入口点通常会像

那样
  • 准备参数并致电main并处理其exit
  • main之前调用global constructors,在
  • 之后调用析构函数
  • 填充environ之类的全局变量等
  • 初始化C运行时,例如timezonestdio溪流等
  • 也许configure x87使用80位浮点
  • 如果您的装载机没有
  • ,则膨胀并归零.bss
  • 托管C程序在您的平台上运行所需的其他内容

这些内容与您的C实施紧密相关,因此通常只有在定位freestanding environment时才会提供自己的_start

相关问题