sa_sigaction signal和sigaction的區(qū)別?
signal和sigaction的區(qū)別?以下信號(hào)指的是舊的信號(hào)功能?,F(xiàn)在大多數(shù)系統(tǒng)用sigaction1重新實(shí)現(xiàn)信號(hào)函數(shù)。Signal在調(diào)用處理程序之前還原信號(hào)的處理程序指針;在調(diào)用sigaction
signal和sigaction的區(qū)別?
以下信號(hào)指的是舊的信號(hào)功能?,F(xiàn)在大多數(shù)系統(tǒng)用sigaction
1重新實(shí)現(xiàn)信號(hào)函數(shù)。Signal在調(diào)用處理程序之前還原信號(hào)的處理程序指針;在調(diào)用sigaction之后,在再次調(diào)用sigaction修改處理程序指針之前,不會(huì)還原處理程序指針。
這樣,(1)信號(hào)會(huì)丟失信號(hào),不能處理重復(fù)的信號(hào),但信號(hào)動(dòng)作可以。因?yàn)閟ignal在獲取信號(hào)和調(diào)用處理程序之間有時(shí)間恢復(fù)處理程序,所以當(dāng)它再次接收到信號(hào)時(shí),它將執(zhí)行默認(rèn)的處理程序。(雖然有些調(diào)用在處理程序的開頭重新設(shè)置了處理程序,但只能降低信號(hào)丟失的概率,但不能保證所有信號(hào)都能正確處理)。信號(hào)在調(diào)用過(guò)程中不支持信號(hào)阻塞,在信號(hào)動(dòng)作調(diào)用后,在處理程序調(diào)用前,會(huì)在信號(hào)中加入屏蔽信號(hào)(默認(rèn)情況下包括自動(dòng)傳輸?shù)男盘?hào)),在調(diào)用ndler后,信號(hào)會(huì)自動(dòng)恢復(fù)到原來(lái)的值。
(2)信號(hào)處理不能提供阻斷某些信號(hào)的功能。信號(hào)操作可以阻止指定的信號(hào)和自己處理的信號(hào),直到處理程序處理結(jié)束。通過(guò)這種方式,可以阻止自己處理的信號(hào),并且在處理程序結(jié)束時(shí)可以再次接受重復(fù)的信號(hào)。