C代码练手记录之五

本文探讨了Linux系统编程中的信号机制,包括信号的属性、处理函数和系统调用。通过实例展示了如何设置信号处理函数,并强调了理解信号属性与设置工具之间的关系对于有效使用系统编程的重要性。学习编程应结合实际场景,深入理解概念和其应用场景。
摘要由CSDN通过智能技术生成

        Linux系统编程中的信号有几个属性,信号的类型,信号是否可被打断,信号处理函数处理完后的动作,系统提供了对这几个方面进行控制的几个函数和对应的结构体,结构体数据用于填充参数,函数用于设置到系统中生效配置。举个形象的例子:就像是按照客户需求生成了订单,函数的作用就是按照这个订单去安排生产,生产设备就是我们的操作系统,系统编程的整个过程就像是生成订单,根据订单内容使用函数安排操作系统的设置进行生产的过程,我们手里的计算机就是做这个事情的专用工具,计算机的可编程存储设计极大的解放了生产力,是又一次的工业革命,将带来面目一新的生产方式,网络用于程序间的通讯和数据交互,将全球的生产链和消费链连成一个整体。让社会运作更加的高效,人们获取各种资源更加便捷,并且节约了获取资源的成本和难度。

        学习编程一定要类比我们身边实际的问题和场景,这样有助于完善对编程的理解,里面很多晦涩的概念也会因为在现实生活中找到类似的场景而变得非常容易理解。

        信号算是一个比较难以理解的概念,在系统编程中的应用也很广泛,理解信号的作用有助于我们理解信号有哪些可以设置的属性,并发现设置这些属性的原因。

        总之,学习计算机不是照本宣科的读死书,而是重温计算机软件,硬件设计的艺术和生活来源,理解计算机的软件和硬件设计合理性和局限性。

        信号处理函数:

                void sig_handler(int sig){

                       ......

                }

                int main(int argc, char **argv){

                        signal(SIGINT, sig_handler);

                        return 0;

                }

        上面是一个最简单的信号处理函数示例,只是设置了某个信号对应的自定义函数,并没有设置信号是否可被中断,也没有设置信号处理函数执行完后,是否恢复默认的信号处理动作。这两个可配置的属性需要通过信号集数据结构和sigaction函数来完成设置动作,看到这里或许就理解信号的各个属性和对应的设置工具的关系了,理解了这个关系才能很好的使用工具在合适的时机使用合理的设置,具体的代码并不复杂,但仅仅看代码是不足够的,希望看到这里的同学在学习编程的过程中更加注重知识的关联性和产生根源,多思考,勤总结是学习的不二法门。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值