一、简介
1.、函数名: atexit
2、头文件:#include<stdlib.h>
3、功 能: 注册终止函数(即main执行结束后调用的函数)
4、用 法: void atexit(void (*func)(void));
5、注意:exit调用这些注册函数的顺序与它们 登记时候的顺序相反。同一个函数如若登记多次,则也会被调用多次。
6、解析:按照ISO C的规定,一个进程可以登记至少32个函数,这些函数将由exit自动调用。atexit函数是一个登记函数, 相当于一个登记处, 让别人来注册, 一般而言, 一个进程可登记的函数个数是有限制的, 通常是32个函数被称为终止处理程序,并调用atexit函数来登记这些函数。通常这32个 在程序退出的时候, 登记处会自动回调用注册的函数。
我们通常认为C语言的起始函数是main函数,实质上一个程序的启动函数并不一定是main函数,这个可以采用链接器来设置,但是gcc中默认main就是C语言的入口函数,在main函数启动之前,内核会调用一个特殊的启动例程,这个启动例程从内核中取得命令行参数值和环境变量值,为调用main函数做好准备,因此对应程序而言main函数并不是起始,但是对应C 语言而言,main函数就是入口地址,其他的链接器帮助我们完成,实际上mian函数的执行是使用了exec函数,这是一个函数族,这也是内核执行一个程序的唯一方法,这在进程控制部分将进行分析。