一個程序不是從main開始的,而是從程序的入口函數(shù)開始的,這就涉及到運行庫,比如glibc。
基本的過程:
1 操作系統(tǒng)創(chuàng)建進程,控制權(quán)交到程序的入口,也就是運行庫的入口函數(shù)。
2 入口函數(shù)進行運行庫的初始化,和運行環(huán)境的初始化,包括堆,io,線程,全局變量等
3 然后就是main函數(shù),main之后返回到入口函數(shù)進行變量的銷毀工作等等
glibc的入口函數(shù)就是—start
這個函數(shù)是匯編實現(xiàn)的平臺無關(guān)
環(huán)境變量是存于系統(tǒng)里的數(shù)據(jù),任何程序都可以訪問,