Use*_*abc 12 c error-handling signals errno shared-libraries
我正在编写一个小型库,它将FILE*指针作为输入.
如果我立即检查这个FILE*指针并发现它导致了段错误,处理信号,设置errno和正常退出是否更正确; 或者什么也不做,并使用调用者已安装的信号处理程序,如果他有一个?
流行的智慧似乎是"图书馆不应该导致崩溃".但我的想法是,由于这个特定的信号肯定是来电者的错,所以我不应该试图向他隐瞒这些信息.他可能安装了自己的处理程序,以自己的方式对问题作出反应.可以使用errno检索相同的信息,但是SIGSEGV的默认处置设置是有充分理由的,并且通过强制调用者处理他的错误,或者通过崩溃并保护他免受进一步损害来传递信号尊重这一理念. .
您是否同意这种分析,或者您是否看到在这种情况下处理SIGSEGV的一些令人信服的理由?
| 归档时间: |
|
| 查看次数: |
354 次 |
| 最近记录: |