訊號之可靠訊號術語和語義

2022-05-04 20:12:22 字數 919 閱讀 4229

當引發訊號的事件發生時,為程序產生乙個訊號(或向程序傳送乙個訊號)。事件可以是硬體異常、軟體條件、終端產生的訊號或呼叫kill函式。

在產生了訊號時,核心通常在程序表中設定乙個某種形式的標誌。當對訊號採取了這種動作時,我們說向程序遞送了乙個訊號

在訊號產生(generation)和遞送(delivery)之間的時間間隔,稱訊號是未決的(pending)。

程序可以選用訊號遞送阻塞。如果為程序產生了乙個選擇為阻塞的訊號,而且對該訊號的動作是系統預設動作或捕捉該訊號,則為該程序將此訊號保持為未決狀態,直到該程序(a)對此訊號解除了阻塞,或者(b)將對此訊號的動作更改為忽略。核心在遞送乙個原來被阻塞(現在解除了阻塞)的訊號給程序時(而不是在產生該訊號時),才決定對它的處理方式於是程序在訊號遞送給它之前仍可改變對該訊號的動作。程序呼叫sigpending函式來判定哪些訊號是設定為阻塞並處於未決狀態的。

每個程序都有乙個

訊號遮蔽字(signal mask),它規定了當前要阻塞遞送到該程序的訊號集。對於每種可能的訊號,該遮蔽字中都有一位與之對應。對於某種訊號,若其對應位已設定,則它當前是被阻塞的。程序可以呼叫sigprocmask來檢測和更改其當前訊號遮蔽字。

訊號數量可能會超過整型所包含的二進位制位數,因此posix.1定義了乙個新資料型別sigset_t,用於儲存乙個訊號集。

本篇博文內容摘自《unix環境高階程式設計》(第二版),僅作個人學習記錄所用。關於本書可參考:

訊號及訊號處理(二) 可靠訊號與不可靠訊號

一 可靠訊號與不可靠訊號有哪些?sighup 1號 至 sigsys 31號 之間的訊號都是繼承自unix系統,是不可靠訊號,也稱為非實時訊號 sigrtmin 33號 與 sigrtmax 64號 之間的訊號,它們都是可靠訊號,也稱為實時訊號 二 什麼是可靠訊號?可靠性是指訊號是否會丟失,即該訊號...

原始碼 訊號可靠訊號不可靠訊號相關

file main.c author luv letter created on 2017年3月14日,下午4 33 include include include include 3 訊號可靠訊號不可靠訊號相關 程式設計程式,要去實現如下功能 父程序建立子程序1和子程序2 子程序1向子程序2傳送可...

24 可靠訊號與不可靠訊號

以下整理 自 1 1 可靠訊號與不可靠訊號 1 訊號值小於 sigrtmin red hat 7.2 中,sigrtmin 32 sigrtmax 63 的訊號都是不可靠訊號。主要問題如下 程序每次處理訊號後,就將對訊號的響應設定為預設動作。在某些情況下,將導致對訊號的錯誤處理 因此,使用者如果不希...