2014-10-27 48 views
0

我讀過很多文章,其中建議使用sigaction代替signal有許多原因。但在閱讀了一些開源代碼(如Redis,Lua)後,我發現signal仍然存在。信號功能是否足夠安全以忽略或恢復信號處理程序?

如果我只用signal忽略或恢復默認的處理程序,如:

signal(SIGPIPE, SIG_IGN); 

或:

signal(SIGPIPE, SIG_DFL); 

signal足夠安全?

回答

1

man 2 signal在Linux上說:

唯一的便攜使用信號的()是一個信號的配置設置爲SIG_DFL或SIG_IGN。

所以,對於您所問的特定用途而言,沒關係。不過,如果在您關心的平臺上可用,似乎沒有什麼優勢可以使用sigaction()

+0

也許這隻適用於Linux。對? – 2014-10-27 07:25:22

+0

建議適用於任何平臺,假設您希望您的代碼也可以移植到Linux。 – 2014-10-27 07:32:35