【发布时间】:2021-03-24 05:45:56
【问题描述】:
以下来自signal的手册页
signal() 的行为因 UNIX 版本而异,并且也有所不同 历史上跨越不同版本的 Linux。避免使用它:使用 sigac- 化(2)代替。请参阅下面的可移植性。
这是否意味着我们应该始终使用sigaction 调用而不是使用signal?
【问题讨论】:
-
如果手册页说你应该避免它,那么你应该避免它。它不一定意味着“总是”。最常见的是,当旧例程已被新例程取代时,无需使用旧例程,除非在特殊情况下工作,例如使用新例程不可用的旧系统。为避免
signal,只需编写代码以在有选择时使用sigaction。如果没有选择,因为某些事情阻止您使用sigaction来获得所需的结果,请使用signal。