atexit()函數


atexit

 
  函數名: atexit
 
  頭文件:#include<stdlib.h>
 
  功 能: 注冊終止函數(即main執行結束后調用的函數)
 
  用 法: int atexit(void (*func)(void));
 
  注意:按照ISO C的規定,一個進程可以登記多達32個函數,這些函數將由exit自動調用。atexit()注冊的函數類型應為不接受任何參數的void函數,exit調用這些注冊函數的順序與它們 登記時候的順序相反。同一個函數如若登記多次,則也會被調用多次。
 
  程序例:
 
  #include <stdio.h>
 
  #include < stdlib.h>
 
  void exit_fn1(void)
 
  {
 
  printf("Exit function #1 called\n");
 
  }
 
  void exit_fn2(void)
 
  {
 
  printf("Exit function #2 called\n");
 
  }
 
  int main(void)
 
  {
 
  /* post exit function #1 */
 
  atexit(exit_fn1);
 
  /* post exit function #2 */
 
  atexit(exit_fn2);
 
  return 0;
 
  }
 
  輸出:
 
  Exit function #2 called
 
  Exit function #1 called
 
  進程的終止方式:
 
  有8種方式使進程終止,其中前5種為正常終止,它們是
 
  1:從 main 返回
 
  2:調用 exit
 
  3:調用 _exit 或 _Exit
 
  4:最后一個線程從其啟動例程返回
 
  5:最后一個線程調用 pthread_exit
 
  異常終止有3種,它們是
 
  6:調用 abort
 
  7:接到一個信號並終止
 
  8:最后一個線程對取消請求做出響應
 
  #include <stdlib.h?
 
  void exit (int status);
 
  void _Exit (int status);
 
  #include <unistd.h>
 
  void _exit (status);
 
  其中調用 _exit,_Exit 都不會調用終止程序
 
  異常終止也不會。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM