首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言進程終止方式總覽:正常返回、exit()、強制殺死、錯誤崩潰

     編輯:關於C語言

四種進程終止路徑

1. 正常返回 (main 函式 return)

int main() {
    // ... 工作 ...
    return 0;  // 向作業系統回傳退出碼
}

最常見、最標準的結束方式。

2. 呼叫 exit() 函式

if (ptr == NULL) {
    fprintf(stderr, "Allocation failed\n");
    exit(1);  // 非零表示異常終止,立即結束整個進程
}

常用於錯誤處理、資源檢查失敗時快速退出。atexit() 可註冊清理函式。

3. 強制終止 (訊號殺死)

  • 終端機指令:kill <PID> (預設送 SIGTERM,可被捕捉/忽略)
  • 強制殺死:kill -9 <PID> (SIGKILL,不可捕捉,核心強制回收)
  • 程式碼中:kill(pid, SIGKILL) (需 root 權限或同使用者)

4. 運行時嚴重錯誤導致崩潰

  • 分段錯誤 (存取非法記憶體)
  • 除零、堆疊溢位、記憶體耗盡
  • 核心送 SIGSEGV/SIGFPE 等訊號終止進程

開發者無法主動觸發此路徑,應透過防禦性程式設計 (邊界檢查、智慧指標、RAII) 預防。

優雅終止原則:優先用 return 或 exit(),確保資源釋放 (檔案關閉、記憶體釋放、鎖釋放)。kill -9 為最後手段,可能導致資料損壞。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved