注册终止函数atexit,即在程序的main函数返回后执行的函数。 要注意的是,main返回后,代码执行的顺序和atexit注册的函数顺序是相反的。 另外,调用_exit, _Exit和异常终止(调用abort、kill),也不会调用 #include <unistd.h> #include <stdlib.h> #include <stdio.h> int exit_fn1(void) { printf("exit fn 1/n"); } int exit_fn2(void) { printf("exit fn 2/n"); } int main(void) { atexit(exit_fn1); atexit(exit_fn2); sleep(20); return 0; } 参考: http://baike.baidu.com/view/653930.htm