为什么申请时没有任何信号退出NORMALLY?

时间:2014-05-07 02:22:36

标签: linux signals

我写了一个库,在应用程序总是调用的函数中注册信号处理程序。我注册了以下信号:

  • SIGQUIT
  • SIGINT
  • SIGKILL
  • SIGCHLD
  • SIGHUP
  • SIGSTOP
  • SIGTERM

所有信号处理程序都指向相同的功能:

signal(SIGQUIT,signal_handler);
signal(SIGINT,signal_handler);
signal(SIGKILL,signal_handler);
....

当我运行应用程序并退出 NORMALLY 时,根本没有引发任何信号。 但如果我用<ctrl-c>打破它,SIGINT将会引发,我的信号处理程序也会被触发。 当应用程序正常退出时,为什么没有出现任何信号?

1 个答案:

答案 0 :(得分:0)

因为它是如何运作的。只有在出现异常情况时才会发出信号。

如果您想在程序正常退出时运行某些内容,请尝试使用atexit()on_exit()