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