如何接收信号

时间:2019-08-06 23:02:32

标签: c signals

我想编写一个守护程序,以接收可以在后台运行的信号。

我对如何接收信号感到有些困惑?收到信号后,可以显示收到的信号吗?

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

// Define the function to be called when ctrl-c (SIGINT) signal is sent to         process
void
signal_callback_handler(int signum)
{
   printf("Caught signal %d\n",signum);
   // Cleanup and close up stuff here

   // Terminate program
   exit(signum);
}

int main()
{
   // Register signal and signal handler
   signal(SIGINT, signal_callback_handler);

   while(1)
   {
      printf("Program processing stuff here.\n");
      sleep(1);
   }
   return EXIT_SUCCESS;
}

我觉得这段代码可以工作,但是如果我想对所有31个可用信号进行处理,我是否必须使用signal(SIGNAL, handler)注册每个信号?

0 个答案:

没有答案