我知道如何捕捉一个信号
signal( SIGINT, handler );
但是有没有一种方法可以同时捕获多个?
我尝试了
signal (SIGINT or SIGQUIT, handler)
但它不起作用。
最佳答案
至于signal(),则已弃用
您可以使用sigaction注册多个信号。
struct sigaction act;
act.sa_handler = sighandler;
sigaction(SIGINT, &act, 0);
sigaction(SIGTERM, &act, 0);
在处理程序中,您将获得一个可用来区分它们的签名。
void sighandler(int signo)
{
if (signo == SIGTERM || signo == SIGINT)
{
}
}
关于c++ - 如何在C++中捕获多个信号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32940770/