中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. "); //-->

        博客專欄

        EEPW首頁 > 博客 > 嵌入式Linux:常見信號的默認(rèn)行為

        嵌入式Linux:常見信號的默認(rèn)行為

        發(fā)布人:美男子玩編程 時間:2024-09-25 來源:工程師 發(fā)布文章

        信號是一種軟件中斷,用于通知進(jìn)程發(fā)生了某種異步事件。信號可以由用戶、其他進(jìn)程或操作系統(tǒng)內(nèi)核產(chǎn)生。進(jìn)程可以選擇捕獲并處理這些信號,或者忽略它們,讓系統(tǒng)執(zhí)行默認(rèn)操作。



        • 不可靠信號(非實時信號)編號為 1~31 的信號。它們的行為可能因?qū)崿F(xiàn)而異,特別是在信號被阻塞或忽略的情況下。如果多個相同的不可靠信號在短時間內(nèi)連續(xù)到達(dá),它們可能會合并成一個信號。

        • 可靠信號(實時信號)編號為 34~64 的信號。它們的行為在所有 POSIX 兼容的系統(tǒng)上都是相同的。可靠信號不會合并,即使它們在短時間內(nèi)連續(xù)到達(dá)。可靠信號支持排隊,這意味著如果一個可靠信號被阻塞,它將被存儲在隊列中,直到信號處理程序準(zhǔn)備就緒。

        常見信號的用途和系統(tǒng)默認(rèn)操作如下:



        SIGINT (2)

        • 觸發(fā)方式:當(dāng)用戶在終端按下中斷字符(通常是CTRL+C)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于中斷正在運(yùn)行的前臺進(jìn)程,是常用的終止命令。


        SIGQUIT (3)

        • 觸發(fā)方式:當(dāng)用戶在終端按下退出字符(通常是CTRL+)。

        • 默認(rèn)操作:終止進(jìn)程并生成核心轉(zhuǎn)儲文件。

        • 描述:用于在程序進(jìn)入無限循環(huán)或不響應(yīng)時終止進(jìn)程,并生成調(diào)試用的核心文件。


        SIGILL (4)

        • 觸發(fā)方式:進(jìn)程嘗試執(zhí)行非法的機(jī)器語言指令。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于指示程序執(zhí)行了無效的操作碼,通常表示程序代碼損壞或內(nèi)存越界。


        SIGABRT (6)

        • 觸發(fā)方式:當(dāng)進(jìn)程調(diào)用abort()系統(tǒng)調(diào)用。

        • 默認(rèn)操作:終止進(jìn)程并生成核心轉(zhuǎn)儲文件。

        • 描述:用于指示進(jìn)程自身發(fā)現(xiàn)了嚴(yán)重錯誤,并請求自我終止。


        SIGBUS (7)

        • 觸發(fā)方式:發(fā)生總線錯誤(例如錯誤的內(nèi)存訪問)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:指示內(nèi)存訪問沖突,通常與硬件有關(guān)。


        SIGFPE (8)

        • 觸發(fā)方式:特定類型的算術(shù)錯誤(例如除以零)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于表示浮點運(yùn)算錯誤或其他算術(shù)異常。


        SIGKILL (9)

        • 觸發(fā)方式:通過kill -9命令或系統(tǒng)直接發(fā)送。

        • 默認(rèn)操作:立即終止進(jìn)程。

        • 描述:是無法被捕獲或忽略的“必殺”信號,用于強(qiáng)制終止進(jìn)程。


        SIGUSR1 (10)

        • 觸發(fā)方式:用戶定義的信號,供程序員自定義使用。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用戶程序可以使用此信號進(jìn)行進(jìn)程間通信或事件通知。


        SIGSEGV (11)

        • 觸發(fā)方式:進(jìn)程嘗試訪問無效的內(nèi)存地址。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:常見于指針錯誤或無效內(nèi)存訪問操作,通常會導(dǎo)致程序崩潰。


        SIGUSR2 (12)

        • 觸發(fā)方式:與SIGUSR1類似,供用戶自定義使用。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:供程序員自定義,用于進(jìn)程間通信或自定義處理邏輯。


        SIGPIPE (13)

        • 觸發(fā)方式:進(jìn)程向已關(guān)閉的管道或套接字寫入數(shù)據(jù)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:當(dāng)嘗試向無效的通信通道寫入數(shù)據(jù)時觸發(fā),通常用于通知進(jìn)程通信失敗。


        SIGALRM (14)

        • 觸發(fā)方式:定時器到期(由alarm()或setitimer()設(shè)置)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:常用于定時操作,信號觸發(fā)后通常終止程序或進(jìn)行某種處理。


        SIGTERM (15)

        • 觸發(fā)方式:通過kill命令(不帶-9選項)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于請求進(jìn)程正常終止,通常用于優(yōu)雅地關(guān)閉應(yīng)用程序。


        SIGCHLD (17)

        • 觸發(fā)方式:子進(jìn)程終止或狀態(tài)改變。

        • 默認(rèn)操作:忽略信號。

        • 描述:父進(jìn)程用來得知子進(jìn)程終止或狀態(tài)改變,默認(rèn)忽略,父進(jìn)程可選擇處理。


        SIGCONT (18)

        • 觸發(fā)方式:恢復(fù)已停止的進(jìn)程。

        • 默認(rèn)操作:繼續(xù)運(yùn)行進(jìn)程。

        • 描述:發(fā)送給已停止的進(jìn)程,使其恢復(fù)執(zhí)行。


        SIGSTOP (19)

        • 觸發(fā)方式:強(qiáng)制停止進(jìn)程。

        • 默認(rèn)操作:停止進(jìn)程。

        • 描述:無法捕獲或忽略的“必?!毙盘枺糜跁和_M(jìn)程執(zhí)行。


        SIGTSTP (20)

        • 觸發(fā)方式:用戶在終端按下停止字符(CTRL+Z)。

        • 默認(rèn)操作:停止進(jìn)程。

        • 描述:用于暫停前臺進(jìn)程組中的進(jìn)程,常用于暫停任務(wù)。


        SIGXCPU (24)

        • 觸發(fā)方式:進(jìn)程CPU時間超出限制。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:通常用于檢測進(jìn)程占用CPU過多時間,可能引發(fā)警告或終止進(jìn)程。


        SIGVTALRM (26)

        • 觸發(fā)方式:虛擬定時器到期(由setitimer()設(shè)置)。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于虛擬定時器管理,定時器到期后觸發(fā)信號。


        SIGWINCH (28)

        • 觸發(fā)方式:終端窗口大小改變。

        • 默認(rèn)操作:忽略信號。

        • 描述:當(dāng)終端窗口調(diào)整大小時,前臺進(jìn)程會接收到此信號。


        SIGPOLL/SIGIO (29)

        • 觸發(fā)方式:異步I/O事件發(fā)生。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:用于異步I/O操作,通知進(jìn)程文件描述符的I/O事件。


        SIGSYS (31)

        • 觸發(fā)方式:進(jìn)程發(fā)起了無效的系統(tǒng)調(diào)用。

        • 默認(rèn)操作:終止進(jìn)程。

        • 描述:通常用于捕獲非法系統(tǒng)調(diào)用或程序錯誤。


        這些信號為Linux進(jìn)程提供了豐富的控制和通信機(jī)制。了解這些信號及其默認(rèn)行為,有助于編寫更加健壯的程序,并能夠有效處理各種異常和中斷。


        *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



        關(guān)鍵詞: 嵌入式 Linux

        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉