我写了一个库,在应用程序总是调用的函数中注册信号处理程序。我注册了以下信号:
所有信号处理程序都指向相同的功能:
signal(SIGQUIT,signal_handler);
signal(SIGINT,signal_handler);
signal(SIGKILL,signal_handler);
....
当我运行应用程序并退出 NORMALLY 时,根本没有引发任何信号。
但如果我用<ctrl-c>
打破它,SIGINT
将会引发,我的信号处理程序也会被触发。
当应用程序正常退出时,为什么没有出现任何信号?
答案 0 :(得分:0)
因为它是如何运作的。只有在出现异常情况时才会发出信号。
如果您想在程序正常退出时运行某些内容,请尝试使用atexit()
或on_exit()
。