我读过很多文章,建议使用sigaction
替换signal
,原因有很多。但在阅读了一些开源代码(例如Redis
,Lua
)之后,我发现signal
仍然存在。
如果我只使用signal
忽略或恢复默认处理程序,例如:
signal(SIGPIPE, SIG_IGN);
或:
signal(SIGPIPE, SIG_DFL);
signal
足够安全吗?
答案 0 :(得分:1)
man 2 signal
说:
signal()的唯一可移植用途是设置信号对SIG_DFL或SIG_IGN的处置。
所以是的,对于您所询问的特定用途,没关系。尽管如此,如果在您关注的平台上可以使用sigaction()
,似乎没有什么优势。