【问题标题】:Is signal function safe enough to just ignore or restore signal handler?信号功能是否足够安全,可以忽略或恢复信号处理程序?
【发布时间】:2014-10-27 07:20:10
【问题描述】:

我读过很多文章建议使用sigaction 替换signal,原因有很多。但是看了一些开源代码(如RedisLua),发现signal还是存在的。

如果我只使用signal来忽略或恢复默认处理程序,如:

signal(SIGPIPE, SIG_IGN);

或:

signal(SIGPIPE, SIG_DFL);

signal 足够安全吗?

【问题讨论】:

    标签: c linux unix signals


    【解决方案1】:

    man 2 signal 在 Linux 上说:

    signal() 的唯一可移植用途是将信号的处置设置为 SIG_DFL 或 SIG_IGN。

    所以是的,对于您询问的特定用途,没关系。不过,如果在您关心的平台上提供 sigaction(),似乎没有什么优势。

    【讨论】:

    • 也许这只适用于 Linux。对吗?
    • 该建议适用于任何平台,前提是您希望您的代码也可以移植到 Linux。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    相关资源
    最近更新 更多