程序有5種正常終止及3中異常終止方式。
5種正常終止方式具體如下:
(1)在main函式內執行return語句。等效於呼叫exit。
(2)呼叫exit函式。此函式由isoc定義,其操作包括呼叫個終止處理程式,然後關閉所有標準i/o流等。
(3)呼叫_exit或_exit函式。isoc定義_exit,其目的是為程序提供一種無須執行終止處理程式或訊號處理程式而終止的方法。對標準i/o流是否進行沖洗,這取決於實現。在unix系統中,_exit和_exit是同義的,並不沖洗標準i/o流。
(注:在大多數unix系統實現中,exit是標準c庫中的乙個函式,而_exit則是乙個系統呼叫。)
(4)程序的最後乙個執行緒在其啟動歷程中執行return語句。
(5)程序的最後乙個執行緒呼叫pthread_exit函式。
3種異常終止具體如下:
(1)當程序接收到某些訊號時。訊號可由程序自身(如呼叫abort函式)、其他程序或核心產生。例如,若程序引用位址空間之外的儲存單元、或者除以0,核心就會為該程序產生相應的訊號。
(2)呼叫abort。它產生sigabrt訊號,這是第一種異常終止的一種特例。
(3)最後乙個執行緒對「取消」請求做出響應。預設情況下,「取消」以延遲方式發生:乙個執行緒要求取消另乙個執行緒,若干時間之後,目標執行緒終止。
不管程序如何終止,最後都會執行核心中的同一段**。這段**為相應程序關閉所有開啟描述符,釋放它所使用的儲存器等。
程序的終止
系統呼叫exit 實現程序的終止。exit 在linux系統函式庫stdlib.h中的函式宣告如下 void exit int status exit 只有乙個引數status,稱作程序的退出狀態,父程序可以使用它的低8位。exit 的返回值通常用於指出程序所完成任務的成敗。如果成功,則返回0 如果...
程序的終止
通常採用exit來結束乙個程序 相應的函式呼叫為 include void exit int status int atexit void function void int on exit void function int void void arg void abort void includ...
程序的終止
有五種方法使程序終止 1.正常終止 1 在main函式內執行return語句,這等效於呼叫exit。2 呼叫exit函式。此函式由ansi c定義,其操作包括呼叫各終止處理程式,然後關閉所有標準i o流等。3 呼叫 exit系統呼叫函式,此函式由exit呼叫。2.異常終止 1 呼叫abort。2 由...