2
爲了理論目的:我使用signal()將SIGINT的處理程序關聯起來。當處理這個信號,即執行信號處理程序時,默認情況下,同一信號被阻止。阻塞的原因是什麼?它會導致僵局嗎?請澄清。信號處理器爲什麼在處理相同信號時被阻塞
爲了理論目的:我使用signal()將SIGINT的處理程序關聯起來。當處理這個信號,即執行信號處理程序時,默認情況下,同一信號被阻止。阻塞的原因是什麼?它會導致僵局嗎?請澄清。信號處理器爲什麼在處理相同信號時被阻塞
由於信號處理程序預計不會重入。
信號處理程序通常運行速度很快,應該只調用異步安全功能,即非常有限的一組功能,請參見signal(7)。
你通常不希望它在它自己內部被調用。
除非你沒有正常返回信號(或者在它內部做一個siglongjmp
),否則之前的信號掩碼在信號處理程序完成後恢復。
但是,您可以安裝不會自行阻止的信號處理程序(通過sigaction
)。
由於類似的原因,在通常的處理器上,intterupt處理程序也快速運行並且禁用中斷。