(1)signal 信号捕捉函数:注册一个信号捕捉函数(不参与捕捉,那是内核的事情)
函数实现:
typedef void(*sighandler_t)(int); //声明了一个函数指针(代表着一类函数:参数是一个int类型的参数,返回值为void)
sighandler_t signal(int signum,sighandler_t handler);//信号捕捉函数,signum触发信号,调用函数handler
void signalhandler(int signum){} //信号捕捉函数要实现的功能
机理:主函数中通过使用一个函数指针(函数的入口地址)当做函数参数,通过函数指针来解决一类问题,从而实现接口和实现的解耦合过程,这也是C语言的一半的精髓所在。
(2)回调机制
1)回调函数解释:来自https://www.jianshu.com/p/2f695d6fd64f的解释
通过函数参数来实现函数功能的迟绑定(有点儿C++多态的意味)
2)函数指针的优点
通过给函数指针赋予不同的值,来实现函数中的一类问题,函数指针的不同,最后实现的功能也不同,有点儿类似C++模板的感觉。通过使用函数指针,使得函数接口和函数实现分离,实现解耦合,使得程序稳定性更强。