如何在 C++ 中捕获多个信号?
how to trap more than one signal in c++?
我知道如何捕获一个信号
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)
{
}
}
我知道如何捕获一个信号
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)
{
}
}