Linux操作系统的动态函式库详细解析(2)

 在此我们检视一个执行档由启动到结束的完整流程,首先这个执行档具有如下的程序码

#include
int main()
{
printf(" test ");
}
 


  然後,透过如下的编程过程

gcc test.c ˉo test  


  我们如果检视执行档的 ELF Header 可以得知它主要呼叫了 /lib/libc.so.6函式库中以下的函式

printf
__deregister_frame_info
__libc_start_main
__register_frame_info
 


  接下来,我们便把程序的执行流程大略整理如下,而 execve("./test", ["./test"], []) 执行的流程,就是刚刚我们所提到的内容,若不熟悉的读者,可以再回头看看刚刚的内容,即可对 execve("./test", ["./test"], []) 的执行流程有大略的了解。在这里,我们会把整个执行流程更完整的来检视一遍。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e080da99f38e0adcf8497e07717851af.html