函数atexit

  按照ISO C的规定,一个进程可以登记32个终止处理程序(exit handler),这些终止处理程序(即函数)将由exit自动调用,在exit自动调用之前,需要使用atexit函数登记这些函数。

  以下是各实现提供的终止处理程序个数限制:

限制 FreeBSD 8.0 Linux 3.2.0 Mac OS X 10.6.8 Solaris 10
ATEXIT_MAX 32 2147483647 2147483647 无限制

  atexit函数原型:

#include<stdlib.h>

int atexit(void (*func)(void));

其中atexit的参数是一个函数地址,该函数无需向它传递参数,也不期望返回一个值。exit调用终止处理函数的顺序和atexit登记的顺序相反,如果一个函数被多次登记,也会被多次调用。

 

注:main函数返回一个整型值与用该值调用exit是等价的,即:

exit(0);

等价于

return 0;

 但与return不同的是,exit()可在非main函数中结束程序/进程

 

posted @ 2018-03-20 18:06  wanfeng_42  阅读(140)  评论(0编辑  收藏  举报