美好的一天,我有下一个代码:
server s;
namespace signals_handler
{
//sig_atomic_t is_stop=0;
void signal_handler(int sig)
{
if(sig==SIGHUP)
{
printf("recived :SIGHUP\n");
s.restart();
}
else if(sig==SIGINT)
{
printf("recived :SIGINT\n");
//is_stop = 1;
s.interupt();
}
}
}
int main(int argc, char* argv[])
{
signal(SIGHUP, signals_handler::signal_handler);
signal(SIGINT, signals_handler::signal_handler);
s.start();
s.listen();
return 0;
}
当我开始执行此代码时,我可以捕获 SIGHUP,SIGINT 不会为我的应用程序提供,但调试器在“侦听”功能中停止但没有移动到信号处理程序功能,为什么会发生这种情况以及我做错了什么?