我读过很多文章,出于很多原因,建议使用sigaction替换signal。但是在阅读了一些开源代码(如RedisLua)之后,我发现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/

10-13 09:20