1. 程式人生 > >反向註冊函式atexit()

反向註冊函式atexit()

 exit函式執行時首先會執行由atexit()函式登記的函式,然後會做一些自身的清理工作,同時重新整理所有輸出流、關閉所有開啟的流並且關閉通過標準I/O函式tmpfile()建立的臨時檔案,最後呼叫_exit系統函式。

#include<stdio.h>
#include<stdlib.h>
void fun1()
{

    printf("fun1\n");
}

void fun2()
{
     printf("fun2\n");

}

int main(int argc,char**argv)
{

        atexit(fun1);//先註冊fun1
        atexit(fun2);//再註冊fun2
        printf("start return\n");

       exit (0);
}
[email protected]:~/luoyiran/proc $ gcc atexit.c 
[email protected]:~/luoyiran/proc $ ./a.out      
start return
fun2
fun1
[email protected]:~/luoyiran/proc $