<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

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

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

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

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



  • 不可靠信號(非實(shí)時(shí)信號)編號為 1~31 的信號。它們的行為可能因實(shí)現而異,特別是在信號被阻塞或忽略的情況下。如果多個(gè)相同的不可靠信號在短時(shí)間內連續到達,它們可能會(huì )合并成一個(gè)信號。

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

常見(jiàn)信號的用途和系統默認操作如下:



SIGINT (2)

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

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

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


SIGQUIT (3)

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

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

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


SIGILL (4)

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

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

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


SIGABRT (6)

  • 觸發(fā)方式:當進(jìn)程調用abort()系統調用。

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

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


SIGBUS (7)

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

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

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


SIGFPE (8)

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

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

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


SIGKILL (9)

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

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

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


SIGUSR1 (10)

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

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

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


SIGSEGV (11)

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

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

  • 描述:常見(jiàn)于指針錯誤或無(wú)效內存訪(fǎng)問(wèn)操作,通常會(huì )導致程序崩潰。


SIGUSR2 (12)

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

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

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


SIGPIPE (13)

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

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

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


SIGALRM (14)

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

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

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


SIGTERM (15)

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

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

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


SIGCHLD (17)

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

  • 默認操作:忽略信號。

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


SIGCONT (18)

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

  • 默認操作:繼續運行進(jìn)程。

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


SIGSTOP (19)

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

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

  • 描述:無(wú)法捕獲或忽略的“必?!毙盘?,用于暫停進(jìn)程執行。


SIGTSTP (20)

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

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

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


SIGXCPU (24)

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

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

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


SIGVTALRM (26)

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

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

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


SIGWINCH (28)

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

  • 默認操作:忽略信號。

  • 描述:當終端窗口調整大小時(shí),前臺進(jìn)程會(huì )接收到此信號。


SIGPOLL/SIGIO (29)

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

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

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


SIGSYS (31)

  • 觸發(fā)方式:進(jìn)程發(fā)起了無(wú)效的系統調用。

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

  • 描述:通常用于捕獲非法系統調用或程序錯誤。


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


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



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

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>