1.概述程序执行过程:
1)操作系统在创建进程后,将控制权交给了程序的入口,这个入口通常是运行库的某个入口函数
2)入口函数对运行库和程序运行环境进行初始化,包括堆,IO,线程,全局变量的构成
3)入口函数完成初始化后,调用 main 函数,正式执行程序主题
4)main函数执行完毕后,返回到入口函数,入口函数进行清理,包括全局变量析构,堆销毁,关闭I/O等,然后进行系统调用结束进程。
2.linux 中 glibc入口函数
1)操作系统将控制权交给进程入口,_start 函数,由汇编实现,与平台相关,以下代码仅供参考:
_start:
xorl %ebp,%ebp //将寄存器 ebp 清零
popl %esi // 弹出 argc,将其存放在 esi 中
movl %esp,%ecp // 使寄存器 ecp

本文概述了程序执行的过程,从操作系统创建进程后将控制权交给入口函数开始,详细讨论了Linux中glibc的入口函数——_start函数在初始化环境和调用main函数中的作用。在main函数执行完毕后,入口函数负责清理工作并结束进程。
最低0.47元/天 解锁文章
1488

被折叠的 条评论
为什么被折叠?



