當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C語言 atexit用法及代碼示例


C語言stdlib頭文件(stdlib.h)中atexit函數的用法及代碼示例。

用法:

int atexit (void (*func)(void));
extern "C" int atexit (void (*func)(void));
extern "C++" int atexit (void (*func)(void));
設置要在退出時執行的函數
所指向的函數func當程序正常終止時,將自動調用不帶參數的參數。

如果不止一個atexit函數是通過對該函數的不同調用指定的,它們都以相反的順序作為堆棧執行(即,指定的最後一個函數是在退出時第一個執行的函數)。

可以注冊一個函數以在退出處執行一次以上。

如果atexit被稱為exit,則調用是否成功取決於具體的係統和庫的實現(未指明的行為)。

如果函數已注冊atexit引發異常,在終止調用時它不提供處理程序,terminate被自動稱為(C++)。

特定的庫實現可能會限製可以向其注冊的函數調用的數量atexit,但不能少於32個函數調用。

參數

function
要調用的函數。該函數應不返回任何值且不接受任何參數。

返回值

如果該函數已成功注冊,則返回零值。
如果失敗,則返回非零值。

示例

/* atexit example */
#include <stdio.h>      /* puts */
#include <stdlib.h>     /* atexit */

void fnExit1 (void)
{
  puts ("Exit function 1.");
}

void fnExit2 (void)
{
  puts ("Exit function 2.");
}

int main ()
{
  atexit (fnExit1);
  atexit (fnExit2);
  puts ("Main function.");
  return 0;
}


輸出:

Main function.
Exit function 2.
Exit function 1.



相關用法


注:本文由純淨天空篩選整理自C標準庫大神的英文原創作品 C atexit function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。