2014年(14)
发布时间:2014-08-15 08:32:39
工作找完了,老板逼着写各种乱七八糟的本子,偷着写点自己的理解,就当是对自己兴趣爱好的补偿吧。 按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用,通常这32个函数被称为终止处理程序,并调用atexit函数来登记这些函数。 我们通常认为C语言的起始函数是main函数,实质上一个程序的启动函数并不一定是main函数,这个可以采用链接器来设置,但是gcc中默认main就是C语言的入口函数,在main函数启动之前,内核会调用一个特殊的启动例程,这个启动例程从内......【阅读全文】
发布时间:2014-08-15 08:32:28
前面写过一篇北极之北之main函数之前,这篇文章其实解决的问题是main函数并不是第一个执行的函数,在main之前,函数的入口点是_start, _start会调用glibc里的__libc_start_main,main函数只是这个函数的入参。 在__libc_start_main中某一步,会执行main函数。这是上面一篇博文获取到的知识。 前两天,CU的gongping11写了一个博文atexit函数和exit函数的理解,这篇博文提到了atexit可以注册退出函数,在main之后,执行注册退出函数。讲的非常的好,我们......【阅读全文】