一步一步学Linux C:信号处理方法 && 实际应用
信号是用于一步事件的。当一个信号发生时,程序会按照已经设定好的程序来执行相应的操作。
进程对信号处理的方法一般有两种:
1、捕捉信号:当一个信号发送个进程时,该进程会调用此信号注册的信号处理函数,来完成相应的操作。对应于每个信号系统一般会有相应的默认处理函数(一般为终止进程)。所以可以设置信号为默认的处理函数。
2、忽略信号。当信号发送时,进程忽略信号。
注:有两个信号是无法捕捉和忽略的SIGKILL和SIGSTOP。它们是提供给管理员,可以在任何时刻终止某个进程而设定的。
对信号处理的要求:在用户编程时有时进程需要对某信号进行立即响应。对有些实时进程来说,当它执行时是不愿意被打断的,这是就需要把接收的信号挂起。
信号的使用:
信号最常见的一个应用就是发生错误时通知进程结束。对于许多错误,如bus错误,浮点错误,调用内存错误等都有相应的信号通知进程。
此外信号还有其他用途。如运行一个大型的科学运算程序,若是在一个无穷循环中用printf来显示运行状态,势必造成运行效率的下降。所以通过信号,人为的向进程发送消息,来查看运行状态,就大大的提高了运行效率。
相关推荐
pointfish 2020-07-18
plcjianghao 2011-04-12
andyzhaojianhui 2011-04-04
amethystqi 2012-01-10
分享经验共同进步 2011-08-23
linuxisperfect 2010-09-26
Dongxiem 2018-11-07
swency 2018-01-08
PeterHuang0 2019-12-08
dguthai 2012-03-21
MXstudying 2019-06-30
pingqingbo 2012-05-25
葫芦小金刚 2019-05-31
逍遥友 2016-12-01
WDlouchenhao 2016-10-31
bucai 2019-01-04
qifei 2014-08-03
Langeldep 2014-03-25
PythonGCS 2019-01-09