跳轉到內容

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();
     }
}
華夏公益教科書