_exit()函數使用說明

摘要:本文描述的是Linux手冊頁中_exit()函數的使用說明,使用_exit()函數終止進程.原文來自:http://www.kernel.org/doc/man-pages/.
NAME
    _exit(),_Exit() - 終止進程.
SYNOPSIS
       #include <unistd.h>
       void  _exit(int status);
       #include <stdlib.h>
       void  _Exit(int status);
   Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
       _Exit():
           _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
           or cc -std=c99
DESCRIPTION
    調用_exit()函數會立即終止進程,屬於該進程的所有打開的文件描述符都會關閉,進程的子進程會歸屬到init進程,成爲init的子進程,並向其父進程發送SIGCHLD信號.
    終止狀態status傳遞返回給父進程,根據子進程的終止狀態,父進程可以調用wait()函數處理該子進程.
    函數_Exit()等價於函數_exit().
RETURN VALUE
   _exit()和_Exit()函數沒有返回值.
CONFORMING TO
   SVr4, POSIX.1-2001, 4.3BSD.  The function _Exit() was introduced by C99.
NOTES
    討論終止進程的作用,終止狀態的傳遞,僵死進程,信號發送等等,詳細請查看exit()函數.
    函數_exit()類似於exit(),但_exit()函數不會調用由atexit()和on_exit()函數註冊的終止處理程序.它是否清理IO緩衝區和刪除臨時文件是依實作(情況)而定的.在另一方面,調用_exit()函數時,關閉文件描述符可能會導致一個未知的延時,並等待輸出完成.如果不希望出現延時,可以在調用_exit()函數之前先調用tcflush()函數,進程是否取消等待IO是依實作(情況)而定的.
    在glibc 2.3版本前,庫函數_exit()與內核系統調用同名,從glibc 2.3版本後,庫函數調用exit_group()來終止進程中的所有線程.
END

筆者:個人能力有限,只是學習參考...讀者若發現文中錯誤,敬請提出.

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------勿在浮沙築高臺,靜下心來,慢慢地沉澱---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

發佈了33 篇原創文章 · 獲贊 44 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章