我想编写一个守护程序,以接收可以在后台运行的信号。
我对如何接收信号感到有些困惑?收到信号后,可以显示收到的信号吗?
#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)
注册每个信号?