C 程式設計/stdlib.h/abort
外觀
C 程式設計 標準庫函式。它用於程式設計過程或環境中異常終止程式或程序。當程式執行過程中遇到錯誤條件時,需要使用此函式退出程序。
它在結束程式之前刪除緩衝區並關閉所有開啟的檔案。abort() 函式終止當前程式。根據實現的不同,函式的返回值可以表示取消(例如,您使用 signal() 函式捕獲 SIGABRT)或中止失敗。SIGABRT 由程序在呼叫 cstdlib 中定義的 abort libc 函式時傳送給自己。SIGABRT 訊號可以被捕獲,但不能被阻塞;如果訊號處理程式返回,則所有開啟的流都會被關閉和重新整理,並且程式終止(如果合適的話,轉儲核心),然後它將控制權返回給主機環境。這意味著 abort 呼叫永遠不會返回。由於此特性,它通常用於在支援庫中發出致命條件的訊號,在這種情況下,當前操作無法完成,但主程式可以在退出之前執行清理。如果斷言失敗,它也會被使用。
#include<stdlib.h>
void abort( void );
此函式不返回任何值,即它是 void 資料型別。
它是標準 c 庫中的執行緒安全函式之一。即函式可以被不同的執行緒呼叫而不會出現任何問題。
此示例測試是否成功打開了檔案 myfile。如果發生錯誤,將列印錯誤訊息,程式將使用對 abort() 函式的呼叫結束。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{ FILE *stream;
if ((stream = fopen("mylib/myfile", "r")) == NULL)
{ perror("Could not open data file");
abort();
}
}