linux操作系统信号捕捉函数之回调函数小结

(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++模板的感觉。通过使用函数指针,使得函数接口和函数实现分离,实现解耦合,使得程序稳定性更强。

猜你喜欢

转载自blog.csdn.net/xx18030637774/article/details/82252862
今日推荐