最近有同事在给我们做 C 的培训,每周四晚上上课,估计得到十一月份了。最近在将 UNIX 环境编程,好在大学的时候也自学过这方面,工作期间,零零总总、断断续续也在不断边学边用,所以理解上倒还不算怎么吃力。
不过这周讲信号,以前看书的时候觉得这东西好像用处也不大,至少进程间通讯基本不会用它吧,最多 kill -HUP 处理一下配置重新载入,现在才发觉其实非常有用——我一直没真正闹明白,像非阻塞读写、I/O 多路复用究竟是怎么实现的,现在知道,其实都是利用信号——当然,也超级复杂,有些片段简直让人有读brainfuck 语言的感觉,o(∩_∩)o…哈哈
总之,应用进程和内核打交道就是两种方式了——这和进程间通讯不同——即同步方式:系统调用,和异步方式:信号。这是以前从未仔细考虑过的。
为了完成作业,重新浏览了一下 Richard Stevens 的 《UNIX 环境高级编程》关于 signal 那一章,发现很多东西书中已经说到,只是以前自己读的时候没闹明白没概念所以略过去了,不得不再次感叹经典的东西就是能经得住时间的考验