Linux-信号处理

2014-11-24 12:09:26 · 作者: · 浏览: 2

信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。


每个信号都有一个名字,以SIG打头。常见的SIGINT( 终端终止符)、SIGABRT(异常终止,abort()产生)、SIGUSR1(用户定义的信号)等。


当信号产生,有三种方式处理该信号




可以使用signal为信号指定信号处理函数,也可以使用sigaction。现在推荐使用sigaction。



下面以echo服务器,来说明如何自定义信号处理函数。






如图所示,分配了一个内存空间,释放了0个内存空间。


但为SIGINT加上信号处理函数,在终止前,释放掉内存空间,就不会出现内存泄露了。效果如下所示: