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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值