Linux 信号的阻塞
当运行这个程序的for循环是,我按了多个Ctrl+c,但是for循环结束后怎么就调用了一次fun_ctrl_c()?
------解决方案--------------------运行的次数跟系统有关,有的系统对阻塞的信号进行排队,这样做的比较少,大多数系统对阻塞信号不排队,只保留一次,所以按了多次Ctrl+c后,信号只处理了一次;参见<unix环境高级编程>第十章,这本书是UNIX编程的圣经了,还是得多看看。
------解决方案--------------------信号分为可靠信号与不可靠信号(32之前的是不可靠信号,剩余的是可靠信号),可靠信号又称为实时信号,非可靠信号又称为非实时信号,不可靠信号不排队,只在对应进程中注册一次,所以。。。。。。
------解决方案--------------------
linux的一个目标就是兼容unix. 学好应用层的linux/unix开发有助于理解linux内核和开发驱动等方面。