我读过很多文章,出于很多原因,建议使用sigaction
替换signal
。但是在阅读了一些开源代码(如Redis
,Lua
)之后,我发现signal
仍然存在。
如果我只使用signal
忽略或还原默认处理程序,例如:
signal(SIGPIPE, SIG_IGN);
或:
signal(SIGPIPE, SIG_DFL);
signal
足够安全吗? 最佳答案
man 2 signal
在Linux上说:
signal()的唯一可移植用途是将信号的配置设置为SIG-DFL或SIG-IGN。
所以是的,对于你要问的特殊用途,没关系。不过,如果在您关心的平台上可以使用sigaction()
,那么使用似乎没有什么优势。
关于c - 信号功能是否足够安全,可以忽略或恢复信号处理程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26582707/