0
你好,我有下面的代碼:爲什麼我不能捕捉到SIGINT信號?
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無法實現我的應用程序,但調試器在「聽」的功能採空,但不能移動到signalhandler功能,爲什麼發生這種情況,我做錯了什麼?