所以,到目前为止,我已经多次使用 signal() 函数,尽管我还没有意识到这个函数的声明实际上是什么样的。 我发现这个函数返回指向一个函数的指针:
void (*signal(int sig, void (*func)(int)))(int)
并且这个指针指向前一个信号处理程序。 好的,但是这是干嘛的?有人使用这个返回的指针吗?您能否描述一个此返回值有用的示例?
最佳答案
这是设置全局值的通用模式。作为设置新值的结果,返回现在的旧值(在本例中是指向处理程序的指针)。
这允许更改是临时的。因此,可以恢复内置处理程序,而无需强制实现按名称向您公开该函数。
尽管在这种情况下,API 确实为您提供了一种通过 SIG_DFL
宏设置默认值的方法。
关于c - signal() 函数返回的函数指针的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41566983/