Как лучше всего в C на Linux настроить программу, которая может обрабатывать несколько сигналов POSIX с одной и той же функцией?
Например, в моем коде у меня есть функция-обработчик, которую я хочу вызывать в общем случае, когда появляется сигнал для выполнения некоторых действий:
/* Exit handler function called by sigaction */
void exitHandler( int sig, siginfo_t *siginfo, void *ignore )
{
printf("*** Got %d signal from %d\n", siginfo->si_signo, siginfo->si_pid);
loopCounter=0;
return;
}
Я настроил два сигнала для перехвата с помощью индивидуальных вызовов sigaction для каждого сигнала:
/* Set exit handler function for SIGUSR1 , SIGINT (ctrl+c) */
struct sigaction act;
act.sa_flags = SA_SIGINFO;
act.sa_sigaction = exitHandler;
sigaction( SIGUSR1, &act, 0 );
sigaction( SIGINT, &act, 0 );
Это правильный способ настроить этот тип обработки? Есть ли другой способ, где мне не нужно перечислять все возможные номера сигналов?