运行库
一个典型的程序运行步骤:
- 操作系统在创建进程后,把控制权交到程序的入口,这个程序的入口往往是运行库中的某个入口函数。
- 入口函数对运行库何程序运行环境进行初始化,包括堆,io,线程、全局变量构造等。
- 入口函数完成初始化后调用main函数。
- main函数执行完毕后返回到入口函数,入口函数进行清理工作,包括全局变量析构、堆销毁、关闭IO等,然后进行系统调用结束进程。
glibc调用
_start -> __libc_start_main -> exit -> _exit
一个典型的程序运行步骤:
_start -> __libc_start_main -> exit -> _exit